gpt4 book ai didi

iOS - 某些单元格不会调用 applyLayoutAttributes

转载 作者:可可西里 更新时间:2023-11-01 04:34:48 24 4
gpt4 key购买 nike

我正在创建一个类似于 iOS 中的跳板屏幕的 View 。 (这是对 this question 的后续问题)。我的实现是一个 Collection View ,它具有使用 UICollectionViewLayout 的自定义布局。此布局是根据 this answer 中发布的代码构建的.因为我想让我的图标摇动并在左上角有一个小的删除按钮,所以我将 UICollectionViewLayoutAttributes 子类化,具有 deleteButtonHidden 的新属性。所有这些都可以很好地协同工作。但是当我用更多图标填充 Collection View 以适合一页时,我遇到了问题。当我进入编辑模式并来回滚动时,我发现有些图标不再摇晃了。我尝试调试它,我意识到我的某些单元格没有调用 applyLayoutAttributes 方法。我还尝试在方法 scrollViewDidScroll 中调用 invalidateLayout,但这没有帮助。

有谁知道为什么有些单元格没有应用它们的属性?

更新:我刚刚发现 Apple 有一个 patent用于摇晃的图标。因此,实现此设计不会获得批准。因此,这个问题不再相关。

最佳答案

Apple 指定在继承 UICollectionViewLayoutAttributes 时,您应该实现 isEqual: 方法。

If you subclass and implement any custom layout attributes, you must also override the inherited isEqual: method to compare the values of your properties. In iOS 7 and later, the collection view does not apply layout attributes if those attributes have not changed. It determines whether the attributes have changed by comparing the old and new attribute objects using the isEqual: method. Because the default implementation of this method checks only the existing properties of this class, you must implement your own version of the method to compare any additional properties. If your custom properties are all equal, call super and return the resulting value at the end of your implementation.

希望对你有所帮助。

关于iOS - 某些单元格不会调用 applyLayoutAttributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23995544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com