滚动时更改按钮的alpha

时间:2015-08-05 17:55:01

标签: ios swift scrollview

我有两个按钮,我想在水平滚动2个视图时更改其alpha值。

我希望一个按钮以0.3 alpha开始,另一个按1.0开始。当我滚动到另一个视图时,我希望它们切换值:第一个按钮为1.0,第二个按钮为0.3。

我只是在scrollViewDidScroll代表中使用了一个按钮:

 allBtn.alpha = scrollView.contentOffset.x / scrollView.bounds.size.width * 0.3

滚动后我会得到0.3 alpha,但是当我回去时,它会为0。

知道如何正确地做到这一点吗?

2 个答案:

答案 0 :(得分:2)

- (CGFloat)calculateButtonAlphaUsingScrollView:(UIScrollView *)scrollView withAlphaForOffsetZero:(CGFloat)alphaForOffsetZero withAlphaForOffsetMax:(CGFloat)alphaForOffsetMax {
    CGFloat width = scrollView.frame.size.width;
    CGFloat contentWidth = scrollView.contentSize.width;
    CGFloat scrollLength = contentWidth - width;
    CGFloat scrollOffset = scrollView.contentOffset.x;
    CGFloat scrollValue = scrollOffset / scrollLength;
    CGFloat alphaChange = alphaForOffsetMax - alphaForOffsetZero;
    return alphaForOffsetZero + alphaChange * scrollValue;
}

答案 1 :(得分:0)

如果你的观点的宽度相等,你可以试试这个"公式":

button1.alpha = (scrollView.contentOffset.x / (scrollView.bounds.size.width/2) * 0.7) + 0.3
button2.alpha = 1 - button1.alpha + 0.3