每当出现新的UICollectionView单元格时,它们会垂直和水平地连续居中

时间:2017-07-07 22:18:56

标签: ios swift uicollectionview uicollectionviewlayout

设置:

我目前有一个UICollectionView,它是一组用于模仿Apple Watch主屏幕UI的单元格。我按照this guide进行了操作。如果您没有阅读该文章或由于某种原因导致文章失效,它基本上是一个圆形的UICollectionView,当您将它们从中心滚动时,外部的圆圈会缩小。

问题:

我希望动态弹出气泡,以便每当用户获得奖励时,奖励“弹出”即动画,从0缩放到1.然而,我希望任何可能存在的单元始终居中。因此,例如,当用户从1奖励跳到2时,我希望第一个奖励向左移动,而新的奖励则会弹出。

我尝试过的事情:

我尝试过实施UICollectionView的{​​{1}}方法,但似乎无效。我怀疑是因为CollectionView不是insetForSectionAt的人。我尝试把它变成一个,但我最终崩溃了......

守则:

以下是我实施的内容,以防文章发生故障。 (为便于阅读而浓缩):

FlowLayout

1 个答案:

答案 0 :(得分:2)

我相信您的问题的解决方案是将集合视图滚动到您想要居中的奖项的indexPath,因为集合视图是滚动视图的子类。您可以通过以下方式将集合视图滚动到项目:

collectionView?.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)

其中indexPath是您要滚动到的indexPath。这会自动为您的滚动设置动画,但是如果您想要自定义,则可以调用UIView.animate函数