【发布时间】:2019-03-01 18:44:37
【问题描述】:
在下面的代码中用于为视图添加渐变层。在将渐变层添加到视图后,如果我尝试在渐变视图中添加新的子视图,则新视图不会显示
func setGradientBackground(_ view: UIView ,colorStart:CGColor ,colorEnd:CGColor,cornerRadius:CGFloat) {
let gradientLayer = CAGradientLayer()
gradientLayer.colors = [colorStart, colorEnd]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5);
gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5);
gradientLayer.frame = view.bounds
gradientLayer.cornerRadius = cornerRadius
view.layer.addSublayer(gradientLayer)
}
如果我使用 UIView 扩展一个类,我如何直接从情节提要属性检查器设置渐变颜色。我在一些库(cosmos)中看到了这一点,我们可以直接设置评级颜色
【问题讨论】:
-
视图基本上是层,当您在任何视图上添加子层时,层次结构会发生变化。在添加任何新视图或图层之前请注意。
-
所以渐变层内的子视图是不可能的?或者我需要为超级视图添加渐变层?
-
是的,在主视图上添加一个带渐变的空视图,然后在主视图上添加新视图是很好的方法。
-
我没有尝试过其他图层或渐变视图,但是当我需要渐变时,我总是在最后添加它,不管是什么层次结构。
-
如果您在可重复使用的单元格(集合或表格)上添加此渐变,请尝试在添加新渐变之前删除旧渐变或仅添加一次,这将有助于提高应用性能。
标签: ios swift gradient cagradientlayer