【发布时间】:2021-04-07 23:37:24
【问题描述】:
所以我在 UIView 子类的下半部分实现了一个简单的渐变,如下所示
但是,每次我离开应用程序并重新进入它时,渐变都会变暗,以此类推。我怎样才能让它保持相同的阴影?
这是我的渐变代码。我不知道将它放在 layoutSubviews 中是否正确,但我无法通过直接调用渐变代码来使其工作,例如在 viewDidLoad 中:
override func layoutSubviews() {
let gradientLayer = CAGradientLayer()
gradientLayer.type = .axial
gradientLayer.colors = [UIColor.clear.cgColor, UIColor.black.cgColor]
gradientLayer.frame = bounds
gradientLayer.startPoint = CGPoint(x: 0, y: 0.5)
gradientLayer.endPoint = .init(x: 0, y: 1)
gradientLayer.zPosition = 1
gradientLayer.opacity = 0.5
layer.addSublayer(gradientLayer)
}
【问题讨论】:
-
您是否在彼此之上添加多个渐变?
-
这是因为每次创建新图层并添加子图层时都会调用布局方法。所以你需要在 awake from nib 方法中创建和添加子层,并在布局子视图方法中更新层框架。
标签: swift uikit cagradientlayer