bob*_*eno 5 ios uicollectionviewlayout
我正在创建一个类似于iOS中的跳板屏幕的视图.(这是对这个问题的后续问题).我的实现是一个集合视图,它具有使用UICollectionViewLayout的自定义布局.此布局是根据本答案中发布的代码构建的.由于我想要让我的图标摇动并在左上角有一个小删除按钮,因此我将子类化为UICollectionViewLayoutAttributes,其新属性为deleteButtonHidden.所有这一切都很好地协同工作.但是当我使用更多图标填充集合视图以适合一个页面时,我遇到了问题.当我进入编辑模式,并来回滚动时,我发现有些图标不再抖动了.我试着调试它,我意识到我的一些单元格没有调用applyLayoutAttributes方法.我也尝试在方法scrollViewDidScroll中调用invalidateLayout,但这没有帮助.
有没有人知道为什么有些单元格没有应用它们的属性?
更新:我刚刚发现Apple拥有摇晃图标专利.因此,实施此设计不会得到批准.因此,这个问题不再适用.
Apple 指定您应该isEqual:在继承 UICollectionViewLayoutAttributes时实现方法。
如果您子类化并实现任何自定义布局属性,您还必须覆盖继承的 isEqual: 方法来比较您的属性值。在 iOS 7 及更高版本中,如果这些属性未更改,则集合视图不会应用布局属性。它通过使用 isEqual: 方法比较新旧属性对象来确定属性是否已更改。由于此方法的默认实现仅检查此类的现有属性,因此您必须实现自己的方法版本以比较任何其他属性。如果您的自定义属性都相等,则调用 super 并在您的实现结束时返回结果值。
我希望它会对你有所帮助。
小智 3
问题是,如果您子类化UICollectionViewLayoutAttributes,则需要在子类中实现copyWithZone:因为超类实现了它。
因此,只需添加您的copyWithZone:实现即可,它应该可以工作。
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |