Я пытаюсь установить прозрачный градиентный цвет в моей таблице. Все работает отлично при первой загрузке, но с каждым прокруткой цвет снова загружается, и градиент кажется темнее и темнее с каждым прокруткой, и при каждом прокрутке табличное представление кажется более медлительным. Вот мой код для реализации градиента цвета: -Градиент с альфой в tableviewcell становится темнее с каждым прокруткой
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
}
cell многоразовый не работает ... думаю. Снова и снова он выделяется, при прокрутке изображения становится темнее. –
Ячейки являются многократно используемыми объектами, что означает, что вам нужно вставлять слой только один раз при инициализации их * ('tableView: cellForRowAtIndexPath:' может быть хорошим местом для добавления этого слоя, если вы не хотите создавать собственный класс ячеек) *. Затем вы можете обновить фрейм слоя в методе 'willDisplayCell' или' layoutSubviews' соответствующей ячейки. – ozgur
Это определенно проблема с повторным использованием ячеек. Имейте в виду, что если вы повторно используете ячейки (вы должны), и при каждом прокрутке вы устанавливаете прозрачность ячейки = cell.trasparency + 0.1 (псевдо-код, чтобы показывать приращение), прозрачность будет увеличиваться – BlackM