我有两个按钮,我想在水平滚动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。
知道如何正确地做到这一点吗?
答案 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