【问题标题】:Fade UIImageView as it approaches the edges of a UIScrollView当 UIImageView 接近 UIScrollView 的边缘时淡化它
【发布时间】:2012-04-23 18:32:32
【问题描述】:

我的应用程序底部的图像上有一个 UIScrollView,它充当带有可以水平滚动的图标的停靠栏。而不是 UIScrollView 的粗糙边缘,我希望图标淡出以获得更美观的外观。作为 iOS 开发的新手,我不知道这些选项是否有效:

  1. 创建一个褪色的图像以用作滚动视图上的叠加层,以便 图标仅通过可见部分出现。
  2. 实际上改变 图像的 alpha 基于它们与中心的距离(或距 每个边缘)。

我怀疑第一个想法会是最简单的,但我想把它扔掉,以换取其他想法。

注意:我确实看过this 教程,但是该技术假定背景是纯色。如果我以编程方式执行此操作,我可能需要淡化单个图像。

【问题讨论】:

    标签: ios xcode ios5 uiscrollview


    【解决方案1】:

    您绝对可以按照 #2 的方式实现一些东西。这将类似于教程描述的内容。然而,alpha 过渡不会像使用教程中提到的渐变层或使用图像那样平滑,因为整个图标将具有相同的 alpha。差异的可辨别程度取决于图标的大小。较小的图标,很少有人能分辨出来。更大的图标区别会很明显。

    你必须实现

    • (void)scrollViewDidScroll:(UIScrollView *)scrollView

    滚动视图的委托类中的方法。每次滚动视图更改其内容的位置时,都会调用此方法。在此方法中,您可以调用其子视图并根据需要调整其 alpha。为了稍微优化它而不是调用所有元素的 alpha 调整,您可以只更新仍然部分/完全可见的子视图。

    编辑:要确定要调整哪些视图,您将使用在上述方法中作为参数传递的 scrollView 的 contentOffset 属性。

    【讨论】:

    • 我最终得到了与你描述的类似的东西,所以我会给你分数。我最终使用了我发布的教程中的相同 CAGradientLayer,旋转了点,将边界设置为滚动视图,并将掩码应用于包含我所有图标的滚动视图中的容器。这最终完美地工作。我不需要触摸任何单独的图标 alpha 值。
    猜你喜欢
    • 2014-09-03
    • 2013-05-27
    • 1970-01-01
    • 2011-04-07
    • 2012-05-21
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多