テーブルビューセルに透明なグラデーションカラーを設定しようとしています。すべてが最初の負荷でうまく動作しますが、各スクロールで色が再びロードされ、グラデーションが各スクロールで暗くなり、スクロールごとにテーブルビューが遅くなるようです。以下のようなあなたの携帯にサブビューを追加し、ビューコントローラに接続しテーブルビューセルでアルファのグラデーションが各スクロールで暗くなります
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.contentView.layer.insertSublayer(gradient(cell.bounds), atIndex: 1)
}
func gradient(frame:CGRect) -> CAGradientLayer {
let layer = CAGradientLayer()
layer.frame = frame
layer.startPoint = CGPointMake(0,0.68)
layer.endPoint = CGPointMake(0,0.75)
layer.colors = [UIColor.clearColor().CGColor,UIColor.blackColor().colorWithAlphaComponent(0.2).CGColor]
return layer
}
セル再利用不可能...と思います。何度も何度もそれを割り当てているので、ビューをスクロールすると暗くなります –
セルは再利用可能なオブジェクトなので、レイヤーを初期化するとレイヤーを一度挿入する必要があります*( 'tableView:cellForRowAtIndexPath:'カスタムセルクラスを作成する必要はありません)*。次に、問題のセルの 'willDisplayCell'メソッドまたは' layoutSubviews'メソッドでレイヤーのフレームを更新することができます。 – ozgur
これは間違いなく細胞を再利用する際の問題です。あなたがスクロールするたびにセルを再利用する場合(セル)とセルの透明度をcell.trasparency + 0.1(擬似コード)に設定すると、透明度が増加することを覚えておいてください。 – BlackM