我为 tableView
做了一个渐变,一切正常,但是当我向上滚动时,出现了一个黑色空间,我该如何解决,我知道这是因为我做了一个透明的 tableView
。
在 objective-c 上是可能的
let gradient = CAGradientLayer()
var gradientSet = [[CGColor]]()
var currentGradient: Int = 0
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
gradientSet.append([gradientOne, gradientTwo])
gradientSet.append([gradientTwo, gradientThree])
gradientSet.append([gradientThree, gradientOne])
gradient.frame = self.tableView.bounds
gradient.colors = gradientSet[currentGradient]
gradient.startPoint = CGPoint(x:0, y:0)
gradient.endPoint = CGPoint(x:1, y:1)
gradient.drawsAsynchronously = true
tableView.layer.insertSublayer(gradient, at: 0)
animateGradient()
}
func animateGradient() {
if currentGradient < gradientSet.count - 1 {
currentGradient += 1
} else {
currentGradient = 0
}
let gradientChangeAnimation = CABasicAnimation(keyPath: "colors")
gradientChangeAnimation.delegate = self
gradientChangeAnimation.duration = 5.0
gradientChangeAnimation.toValue = gradientSet[currentGradient]
gradientChangeAnimation.fillMode = kCAFillModeForwards
gradientChangeAnimation.isRemovedOnCompletion = false
gradient.add(gradientChangeAnimation, forKey: "colorChange")
}
func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
if flag {
gradient.colors = gradientSet[currentGradient]
animateGradient()
}
}
最佳答案
我建议将渐变应用于位于 TableView 后面的另一个 UIView。这可能是 ViewControllers View ,或者只是一个新的 UIView。然后您只需要确保调整 UIView 的大小以匹配表格。
关于ios - TableView 的渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46151849/