好的,情况如下:
我有一个集合视图,cellForRow
我正在使用dequeueReusableCell
来重用单元格。在每个单元格上,我都有一个作为子视图添加的自定义UIView
对象。
现在,在某些情况下,我必须完全重新布局集合视图。当这种情况发生时
- 从数据模型中清除所有项
- 对所有可见单元格的索引路径调用
deleteItems
- 呼叫
reloadData
此时,集合视图为空,并且不显示任何单元格。
现在,如果我再次使用数据更新我的模型并重新加载集合视图 - IncellForRow
dequeueReusableCell
返回重用的单元格/如上所述添加的 UIView 在那里!/- 即使集合视图在当前更新之前为空,它也不会初始化新的单元格对象。我不确定这是否是预期的行为,或者我的代码中有其他问题,但我的问题是 - 如何达到我reset
集合视图上的所有内容并dequeueReusableCell
返回一个新初始化的单元格对象的地步。
我以艰难的方式学到了这一点!通过了解这一点来节省一些时间 Petar 在任何集合视图/表视图中,只要约束或其布局结构中的任何 UI 元素发生任何更改,您都应该始终并且始终创建另一个原型单元格。这是唯一正确的方法,所以不要认为你会花更多的时间来制作另一个单元格。
当我读到您的评论时,您说您将根据要重置所有内容的一个条件启动另一个视图。只需使用另一个视图进行另一个单元格原型,然后立即将其取消排队。
希望它能解决您的问题