我在scrollOffset上有一个可以改变颜色的按钮。我有下面的代码工作,除了它是在相反的方向执行动画。而不是从透明到不透明(0% - 100%),我希望它做相反的事情(100% - 0%)。我想我计算的偏移量是错误的,但是我不确定正确的计算方法是什么?
func scrollViewDidScroll(_ scrollView: UIScrollView) {
// Offset is WRONG
var offset = scrollView.contentOffset.y / 150
if offset > 1 {
offset = 1
button.backgroundColor = UIColor(hue: 1, saturation: 1, brightness: 1, alpha: offset)
} else {
buttomn.backgroundColor = UIColor(hue: 1, saturation: 1, brightness: 1, alpha: offset)
}
}发布于 2019-07-05 17:32:11
首先,可以用min()替换大于1的检查
offset = min(1, offset)由于contentOffset.y也可以为负值,因此您可能希望使用max()防止负值
offset = max(0, min(1, offset))现在,如果您想反转方向,只需从1中减去该值:
offset = 1 - max(0, min(1, offset))或者,在一行中完成:
let offset = 1 - max(0, min(1, scrollView.contentOffset.y / 150))最后,设置颜色:
buttom.backgroundColor = UIColor(hue: 1, saturation: 1, brightness: 1, alpha: offset)https://stackoverflow.com/questions/56900237
复制相似问题