iOS: UICollectionView content reset and dequeueReusableCell



好的,情况如下:

我有一个集合视图,cellForRow我正在使用dequeueReusableCell来重用单元格。在每个单元格上,我都有一个作为子视图添加的自定义UIView对象。

现在,在某些情况下,我必须完全重新布局集合视图。当这种情况发生时

  • 从数据模型中清除所有项
  • 对所有可见单元格的索引路径调用deleteItems
  • 呼叫reloadData

此时,集合视图为空,并且不显示任何单元格。

现在,如果我再次使用数据更新我的模型并重新加载集合视图 - IncellForRowdequeueReusableCell返回重用的单元格/如上所述添加的 UIView 在那里!/- 即使集合视图在当前更新之前为空,它也不会初始化新的单元格对象。我不确定这是否是预期的行为,或者我的代码中有其他问题,但我的问题是 - 如何达到我reset集合视图上的所有内容并dequeueReusableCell返回一个新初始化的单元格对象的地步。

我以艰难的方式学到了这一点!通过了解这一点来节省一些时间 Petar 在任何集合视图/表视图中,只要约束或其布局结构中的任何 UI 元素发生任何更改,您都应该始终并且始终创建另一个原型单元格。这是唯一正确的方法,所以不要认为你会花更多的时间来制作另一个单元格。

当我读到您的评论时,您说您将根据要重置所有内容的一个条件启动另一个视图。只需使用另一个视图进行另一个单元格原型,然后立即将其取消排队。

希望它能解决您的问题

最新更新