滚动 UITableView 与渐变混乱
Posted
技术标签:
【中文标题】滚动 UITableView 与渐变混乱【英文标题】:Scrolling UITableView mess with gradient 【发布时间】:2018-01-20 16:17:07 【问题描述】:我的 TableViewController 上有一个自定义的 TableViewCell。 该单元格有一个 UIView,它变成了一个渐变,在底部显示黑色,在 UIView 顶部显示清晰(透明)的颜色。
应用加载时看起来不错,但是当我滚动时,渐变变得越来越黑,并且“淡化”本身变得更小并且更接近 UIView 的顶部。
我不知道如何让它保持最初加载应用时的状态。
这是我的代码:
let gradient = CAGradientLayer()
gradient.frame = cell.gradientView.bounds
let colour:UIColor = .black
gradient.colors = [colour.withAlphaComponent(0.0).cgColor,colour.cgColor]
cell.gradientView.layer.insertSublayer(gradient, at: 0)
【问题讨论】:
【参考方案1】:在 awakeFromNib 中而不是在 cellForRow 中添加此代码,因为由于出队,渐变被多次添加到单元格中
let gradient = CAGradientLayer()
gradient.frame = cell.gradientView.bounds
let colour:UIColor = .black
gradient.colors = [colour.withAlphaComponent(0.0).cgColor,colour.cgColor]
self.gradientView.layer.insertSublayer(gradient, at: 0)
【讨论】:
以上是关于滚动 UITableView 与渐变混乱的主要内容,如果未能解决你的问题,请参考以下文章
UIView、UICollectionView、UITableView、UIScrollView 的边界属性理解混乱
编辑第一个 UITextField 时,如何将 UITableView 滚动到第二个 UITextField?