滚动时更改按钮的 alpha
Change button's alpha while scrolling
我有两个按钮,我想在水平滚动 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。
知道如何正确执行此操作吗?
如果你的视图宽度相等,你可以试试这个"formula":
button1.alpha = (scrollView.contentOffset.x / (scrollView.bounds.size.width/2) * 0.7) + 0.3
button2.alpha = 1 - button1.alpha + 0.3
- (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;
}
我有两个按钮,我想在水平滚动 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。
知道如何正确执行此操作吗?
如果你的视图宽度相等,你可以试试这个"formula":
button1.alpha = (scrollView.contentOffset.x / (scrollView.bounds.size.width/2) * 0.7) + 0.3
button2.alpha = 1 - button1.alpha + 0.3
- (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;
}