滚动视图具有捕捉和缩放

时间:2018-08-10 23:54:14

标签: ios swift scrollview paging scaling

我一直想为Swift iOS应用创建滚动捕捉缩放UI,但是却不知道要搜索什么。然后昨晚我在Apple News应用程序中看到了这个,这正是我想要做的。关于从哪里开始的任何指针?

我之前使用分页进行了滚动视图,但这要求每个“页面”都具有相同的大小,而且我只会看到当前页面。我喜欢您在当前页面上看到的左右页面的10%。另外,我希望居中的“页面”大于外部页面。

这种滚动动画是否有名称?不知道它叫什么,使搜索变得困难。

谢谢!

GIF:

slider

1 个答案:

答案 0 :(得分:1)

这是一个UICollectionView,它实现了众所周知的“轮播”。

实际上,非常易于实现,只需做一些简单的调整即可作为UICollectionViewFlowLayout子类。您只需要重写三个方法:

  • shouldInvalidateLayout(forBoundsChange:)true,以在滚动过程中获得布局

  • layoutAttributesForElements(in:)修改屏幕上单元格的UICollectionViewLayoutAttributes的transform3D属性

  • targetContentOffset(forProposedContentOffset:withScrollingVelocity:)获得分页效果

Apple在WWDC 2012视频中向您解释了所有这一切。 IIRC之所以将其称为“封面流”,是因为它是根据Mac Finder中的封面流建模而成的。