【问题标题】:Change button's alpha while scrolling滚动时更改按钮的 alpha
【发布时间】:2015-08-05 17:55:00
【问题描述】:

我有两个按钮,我想在水平滚动 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。

知道如何正确执行此操作吗?

【问题讨论】:

    标签: ios swift scrollview


    【解决方案1】:
    - (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】:

      如果你的视图宽度相等,你可以试试这个“公式”:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多