【发布时间】:2014-02-03 02:41:10
【问题描述】:
如何将单元格(在 UICollectionView 中)堆叠在一起? Feedly 做得很好,我想知道是否可以以某种方式操纵 zIndex 属性以在 UICollectionView 的导航中获得类似的效果。
或者我是在浪费时间在 UICollectionViews 上,应该考虑使用容器视图控制器来改变我的方法吗?
【问题讨论】:
标签: ios objective-c navigation uicollectionview
如何将单元格(在 UICollectionView 中)堆叠在一起? Feedly 做得很好,我想知道是否可以以某种方式操纵 zIndex 属性以在 UICollectionView 的导航中获得类似的效果。
或者我是在浪费时间在 UICollectionViews 上,应该考虑使用容器视图控制器来改变我的方法吗?
【问题讨论】:
标签: ios objective-c navigation uicollectionview
为了实现这一点,我的团队向 uicollectionview 添加了一个基本的整页水平封面流布局。然后我们添加了一个平移手势识别器并在 collectionView 控制器上禁用了滚动。一旦平移手势开始,我们就会对单元格进行屏幕覆盖并将图像放在 collectionView 上。完成后,我们手动将 collectionView 的页面更改为屏幕截图后面的下一页。然后我们沿着手势的路径为 uiimage(上一页的屏幕截图)设置动画。如果超过阈值,我们将提交动画并删除图像,您将获得预览的 collectionView 单元格的完整效果。
不幸的是,阈值检查有点乏味,因为您必须还原。带回细胞的动画也有点古怪。使用此方法,如果您不将其添加为特殊情况,那么它看起来单元格总是在后面。由于我们希望它看起来像一个堆栈,因此我们确保它看起来像是您将前一个单元格从屏幕外拉到堆栈的顶部。这是通过保留与数据源匹配的单元格屏幕截图的集合 (NSArray) 来完成的,因此基本上我们可以根据 indexPath.row 抓取图像。执行平移手势识别器以将其重新放入堆栈。如果它通过了阈值,我们将提交动画,最后更改集合视图的当前单元格并删除屏幕截图。所以感觉天衣无缝。
【讨论】:
关于这方面的文章非常好,跳转到这个网站,你会找到你需要的一切。
http://skeuo.com/uicollectionview-custom-layout-tutorial
基本上你要找的是 CustomLayout。
【讨论】:
您可以使用CHTCollectionViewWaterfallLayout 创建pinterest-like-layout。它是在UICollectionView 之上创建的。
【讨论】: