我知道这个问题可能看似重复,但是大多数答案都忽略了在视图中滚动的事实。
当我滚动渐变颜色时,整个滚动保持不变,而不是完全用于背景。例如,视图的高度是1500,并且我看的当前视图是(示例)450,然后在该450中,渐变在整个其他1050中是恒定的而不是在滚动时它应该变得更暗和更暗(到另一种颜色)。这是一个更好理解的图像
这是我正在使用的代码:
func setGradientColour() {
let colorTop = UIColor(red: 255.0/255.0, green: 149.0/255.0, blue: 0.0/255.0, alpha: 1.0).cgColor
let colorBottom = UIColor(red: 255.0/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0).cgColor
let gradientLayer = CAGradientLayer()
gradientLayer.colors = [colorTop, colorBottom]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.frame = self.view.bounds
self.view.layer.insertSublayer(gradientLayer, at: 0)
}
在viewDidLoad方法中调用了哪个。
答案 0 :(得分:0)
原来代码错误,必须更改为:
func setGradientColour() {
let colorTop = UIColor(red: 255.0/255.0, green: 149.0/255.0, blue: 0.0/255.0, alpha: 1.0).cgColor
let colorBottom = UIColor(red: 255.0/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0).cgColor
let gradientLayer = CAGradientLayer()
gradientLayer.colors = [colorTop, colorBottom]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.frame = scrollViewTest.bounds
scrollViewTest.layer.insertSublayer(gradientLayer, at: 0)
}
其中scrollViewTest是scrollView的出口。错误是我正在调用普通视图层而不是滚动视图,这减少了视图的长度。