【发布时间】:2019-09-10 05:39:13
【问题描述】:
我的 tableView 位于一个空白内容视图中,并有约束将其固定到位。该表将在容器中正常运行,但是一旦我使用下面的代码应用渐变,渐变效果很好,除了我的 tableViewCells 的右侧被切断。它仅在应用渐变时发生。任何建议将不胜感激。
在添加渐变之前,表格视图如下所示:
TableView with full TableViewCells
添加渐变后,表格视图如下所示:
TableView with cut TableViewCells
这是我用来应用渐变的代码。
let gradientLayerMask = CAGradientLayer()
gradientLayerMask.frame = gradientMask.bounds
gradientLayerMask.colors = [UIColor.clear.cgColor, UIColor.white.cgColor, UIColor.white.cgColor, UIColor.clear.cgColor]
gradientLayerMask.locations = [0.0,0.1,0.9,1.0]
gradientMask.layer.mask = gradientLayerMask
exerciseTable.contentInset = UIEdgeInsets(top: 15, left: 0, bottom: 0, right: 0)
【问题讨论】:
-
渐变的目的是什么?我看不到渐变效果。显然,您只是掩盖了桌子的右侧。
-
@matt 渐变旨在淡化表格视图的顶部和底部,以便在滚动时看起来更平滑,而不是所有东西都消失的实线。
-
好吧,我不认为它会这样做。无论如何,它的宽度显然小于表格视图的宽度。
-
@matt 我调整了垂直插入,以便在不滚动 tableview 时,渐变不可见,因此渐变本身在滚动之前不可见。我同意你所说的它比 tableview 本身更窄,但是在代码中没有任何地方我以编程方式更改了大小。我已经重新完成了所有约束以确保这些约束也是正确的。也就是说,我会继续看看我是否不小心改变了其他地方的尺寸。
-
但是你没有显示你的代码在哪里。如果
viewDidLoad太早了。
标签: ios swift tableview gradient mask