【问题标题】:UICollectionView cell layout is out of the collection view's boundsUICollectionView 单元格布局超出了集合视图的范围
【发布时间】:2013-05-02 20:26:18
【问题描述】:

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

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

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

因此会发生每条水平线 3 个单元格。

= 320。

我遇到的问题是有时它会在一条线上放置 4 个单元格! 第 4 个单元格大部分不在屏幕上。然后它只在下一行放置 2 个单元来进行补偿。流式布局的重点在于它是一种断行布局,不应该把任何东西放在屏幕外!

我附上了一张图片:

请注意,在第二行,第四个项目几乎不在屏幕上。

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

每次更新集合视图时,都会在不同的地方发生此错误。 IE。它可能发生在第 2 行,然后一旦发生更新,它可能会发生在第 10 行,依此类推。

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

请有人给我一些关于可能出错的建议。

谢谢

【问题讨论】:

    标签: ios uikit uicollectionview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 2015-08-19
      • 2017-07-22
      • 1970-01-01
      相关资源
      最近更新 更多