繁体   English   中英

在接近UIScrollView的边缘时淡化UIImageView

[英]Fade UIImageView as it approaches the edges of a UIScrollView

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

  1. 创建一个褪色的图像以用作滚动视图的覆盖层,以便图标仅通过可见部分出现。
  2. 实际上,根据图像与中心(或每个边缘)的距离来更改图像的Alpha。

我怀疑第一个想法是最简单的,但我想将其用于其他任何想法。

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

您绝对可以按照#2的方式实施某些操作。 这与本教程描述的内容类似。 但是,alpha过渡不会像使用本教程中提到的渐变层或使用图像那样平滑,因为整个图标将具有相同的alpha。 差异的明显程度取决于图标的大小。 较小的图标,很少能分辨出差异。 图标越大,区别就越明显。

您必须实施

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM