滚动时更改UIButton色调颜色

时间:2016-10-05 15:08:32

标签: ios swift

我有一个自定义表格视图标题,当用户向下滚动时会变得模糊。我喜欢更改其中一个导航栏项目项目的色调颜色(它不是导航栏按钮项目,只是一个UIButton)。我一直在使用tableviews contentOffset.y属性来设置按钮动画,并模糊背景图像视图。我需要对色调颜色这样做,但我可以弄清楚如何。

例如,这是缩小配置文件pic并使用alpha属性隐藏一些视图的代码

func movingUp(offset: CGFloat) {
    if infoView.alpha >= 0 {
        let alphaOffset = (offset - 133)/105.0
        infoView.alpha = alphaOffset*1.2
        profilePic.alpha = alphaOffset
    }

    if profileWidth.constant >= 45 {
        profilePic.layer.cornerRadius = (((offset - 133)/105.0) * 90)/2
        profileHeight.constant = ((offset - 133)/105.0) * 90
        profileWidth.constant = ((offset - 133)/105.0) * 90
    }
}

1 个答案:

答案 0 :(得分:1)

我有一个答案可以帮助你...... http://www.oliverfoggin.com/controlling-animations-with-a-uiscrollview/

我们的想法是,您可以使用当前内容偏移量在两个极值之间移动,并将其用作基于最大偏移量的百分比。

在您的情况下,它很容易,因为颜色是百分比的简单反函数。

let color = UIColor(white: 1.0 - percentage, alpha: 1.0)

当百分比为0.0(即表的顶部)时,白色值为1.0 =白色。

当百分比为1.0(即表的底部)时,白色值为0.0 =黑色。

我刚刚意识到我的帖子是在Objective-C中。它应该很容易转换为Swift,因为它只使用简单的数学函数。如果你想让我转换它让我知道,我会把它放在这里。