我开发了一个自定义 UICollectionViewLayout 来处理客户端应用程序的一些高级布局要求,这似乎工作得很好。直到我开始尝试使用动画。
我花了一些时间来记录并使其更加灵活,因此可以在这里找到它:https ://github.com/liamnichols/LNCollectionViewPagedLayout 。
它的目的是如果内容不适合前一页,则将内容分页到新页面,以确保内容不会跨两个页面,并且似乎可以处理这个问题。
我从一开始就注意到它存在动画问题但是我最初不需要使用动画所以没有尝试调查/修复虽然现在它成为一个UICollectionViewCell
可以扩展显示更多内容的要求并且当我尝试使用任何动画方法(reloadRowsAtIndexPaths:
等performBatchUpdates:completion:
)的形式我总是得到非常奇怪的行为,从崩溃(view argument is nil
)到混乱的布局。
目前我的布局通过向代表询问每个单元格的大小然后运行一些逻辑来查看它是否适合等等来创建一个UICollectionViewLayoutAttributes
字典prepareLayout
。
当layoutAttributesForElementsInRect:
调用该方法时,它可以简单地查询字典并获取与该矩形相关的属性数组。
首先,这是创建此布局的最佳方式吗?我发现很难找到有关创建自定义布局以满足我的需求的文档,并最终查看了其他开源库以获取有关该做什么的指针。
其次,我没有实现初始/最终布局属性方法,因为我无法弄清楚如何正确使用它们。这是我遇到问题的原因还是这些是可选的?
任何正确创建的帮助或指示UICollectionViewLayouts
都会很棒。