首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >contentOffset反向计算

contentOffset反向计算
EN

Stack Overflow用户
提问于 2019-07-05 17:24:54
回答 1查看 68关注 0票数 0

我在scrollOffset上有一个可以改变颜色的按钮。我有下面的代码工作,除了它是在相反的方向执行动画。而不是从透明到不透明(0% - 100%),我希望它做相反的事情(100% - 0%)。我想我计算的偏移量是错误的,但是我不确定正确的计算方法是什么?

代码语言:javascript
复制
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)
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-05 17:32:11

首先,可以用min()替换大于1的检查

代码语言:javascript
复制
offset = min(1, offset)

由于contentOffset.y也可以为负值,因此您可能希望使用max()防止负值

代码语言:javascript
复制
offset = max(0, min(1, offset))

现在,如果您想反转方向,只需从1中减去该值:

代码语言:javascript
复制
offset = 1 - max(0, min(1, offset))

或者,在一行中完成:

代码语言:javascript
复制
let offset = 1 - max(0, min(1, scrollView.contentOffset.y / 150))

最后,设置颜色:

代码语言:javascript
复制
buttom.backgroundColor = UIColor(hue: 1, saturation: 1, brightness: 1, alpha: offset)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56900237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档