gpt4 book ai didi

ios - UICollectionView 单元格布局超出了 Collection View 的边界

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

我有一个 UICollectionView,它使用 Flow Layout 来布置它的单元格。它是垂直滚动的。

它填充一个 320x480 的屏幕并显示一个始终为 96*96 的自定义 UICollectionViewCell - 大小在 Interface Builder 中设置,委托(delegate)不实现在每个项目的基础上设置项目大小的方法。

左右各有10px的insets,最小间距设置为6px。

因此,每条水平线有 3 个单元格。

<-10-><----96----><-6-><----96----><-6-><----96---->><-10-> = 320。

我遇到的问题是它偶尔会在一行中放置 4 个单元格!第 4 个单元格大部分不在屏幕上。然后它仅在下一行放置 2 个单元格以进行补偿。流式布局的全部意义在于它是一种换行式布局,不应将任何内容放置在屏幕外!

我附上了一张图片:

enter image description here

请注意,在第二行有第四个项目,大部分都在屏幕之外。

我真的不知道是什么原因造成的。单元格动态填充数据,但它们的大小是恒定的。所有其他行上的单元格都适合,所以没有理由在某些行上发生这种情况。

每次更新 Collection View 时,这个错误都会出现在不同的地方。 IE。它可能发生在第 2 行,然后一旦发生更新,它可能发生在第 10 行,依此类推。

Collection View 正在由计时器更新。计时器实质上调用了一个处理一些数据的函数,然后使用 dispatch_async(到主队列)更新包含支持数据的数组并调用 [collectionView reloadData]。所以除了主线程之外,我没有从任何线程更新 Collection View 。后备数组仅在主队列和该函数中更新;不是来自其他任何地方。

请有人给我一些建议,告诉我可能出了什么问题。

谢谢

最佳答案

我已通过在 scrollViewDidScroll: 委托(delegate)方法中添加 [_collectionViewFlowLayout invalidateLayout] 来修复它。

https://github.com/f33chobits/FSCalendar/issues/21

关于ios - UICollectionView 单元格布局超出了 Collection View 的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16347102/

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