objective-c – UICollectionView装饰和补充视图不能移动

objective-c – UICollectionView装饰和补充视图不能移动,第1张

概述在UICollectionView装饰补充看来似乎是一个很大的谜.目前似乎没有示例代码.我设法使这两种类型在自定义布局中工作(有关详细信息,请参阅此 post).只要它们保持在相同的位置,一切都很好(即如果它们的layoutAttributes.frame不改变). 然而,一旦我重新布局,改变了layoutAttributes的装饰或补充视图,他们可以视觉上重复 – 即在他们的原始位置的背景中有 在UICollectionVIEw装饰和补充看来似乎是一个很大的谜.目前似乎没有示例代码.我设法使这两种类型在自定义布局中工作(有关详细信息,请参阅此 post).只要它们保持在相同的位置,一切都很好(即如果它们的layoutAttributes.frame不改变).

然而,一旦我重新布局,改变了layoutAttributes的装饰或补充视图,他们可以视觉上重复 – 即在他们的原始位置的背景中有一个副本,在他们的新位置有一个副本.如果我们从XIB或者完全代码中实例化它们的行为是一样的,而且对于正常的单元格来说,行为不会发生.

起初我以为这是一种重绘问题,但是这些“副本”可以重新布局,重绘等等,但是它们不是真正的副本,因为layoutAttributesFordecorationVIEw等从来没有被调用(仅适用于新的位置) .在UICollectionVIEw的背景中似乎有一些缓存.

有人有这个工作或有任何想法.我必须说,我是iOS平台的新手,所以它也可以是设置“剪辑绑定”或“清晰图形上下文”属性的简单的东西(我尝试过,但可能是类似的东西).

这让我疯狂,很奇怪,绝对没有示例代码.

我问自己:装修和补充意见是不是意图重新定位? (我希望不是)

解决方法 嗨,这是一个老问题,但有一个答案.

实际上,当我实现自己的Layout对象时,我也遇到了这些问题,直到我意识到在你的自定义布局中缓存你创建的任何布局属性对象是至关重要的.在文件中实际上有一个非常模糊的参考(我现在不记得精确的位置),这很容易被误解.

基本上一旦你已经在一个索引路径上为一个单元格请求了一个layoutAttributes对象,那么你应该保留这个属性对象(比如把它保留在一个字典中,索引路径就像一个键一样),然后返回相同的属性对象请求属性.如果您不这样做,而是重新创建新的布局属性,批量更新的动画将导致严重的图形故障和伪影.

总结

以上是内存溢出为你收集整理的objective-c – UICollectionView装饰和补充视图不能移动全部内容,希望文章能够帮你解决objective-c – UICollectionView装饰和补充视图不能移动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1085574.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存