UICollectionViewCell 中的标签文本未更新

Posted

技术标签:

【中文标题】UICollectionViewCell 中的标签文本未更新【英文标题】:Label text in UICollectionViewCell not updating 【发布时间】:2014-11-28 09:28:59 【问题描述】:

UICollectionViewCell 加载后,我试图在UICollectionViewCell 中更改UILabel 的文本,同时点击button。但标签不会在屏幕上更新。控制台显示标签的 text 属性已更新,但似乎标签没有用新文本重绘。

这是UICollectionViewCells 的已知问题吗?也许是某种缓存问题?我是否需要 reload 单元格或整个集合视图才能显示更新?

【问题讨论】:

请按照您尝试管理的方式添加一些代码。 @andlin 重新加载视图。 【参考方案1】:

我遇到过类似的情况,collectionView 单元格中的 UILabel 更新正常。然后在对故事板进行一些修改后,UILabel 在以编程方式更新值时不会改变。如最初的问题所述,即使调试终端显示连接的 UILabel 属性文本正在更新,该值仍保持默认值。

这是我解决问题的方法。在故事板中,

    删除了 UILabel 的引用出口(在“显示连接检查器”中) 从情节提要中删除了 UILabel 重新添加了 UILabel 将引用出口重新连接到 swift 文件代码属性

不知何故,一切又开始正常工作了。

附带说明:Radwa 答案的 swift 3.1 版本是:

collectionView.reloadItems(at: [indexPath]) // single cell in the collection view
collectionView.reloadData() // entire collection view

【讨论】:

【参考方案2】:

因为单元格已经加载,单元格在重新加载之前不会发生任何变化,因此您可以重新加载整个集合视图 [self.collectionView reloadData];

或者只有一个/多个单元格受到数据更改的影响

[self.collectionView reloadItemsAtIndexPaths: indexpathArray];

但请确保在重新加载单元格之前正确更改数据

【讨论】:

以上是关于UICollectionViewCell 中的标签文本未更新的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionViewCell 中的 UILabel 布局怪异

UICollectionViewCell 中的 UILabel

UICollectionViewCell 中的 UILabel 为 nil

确定 UICollectionViewCell 中的点击元素

UICollectionViewCell 中的 UILabel 有时无法正确调整大小

在 cellForItemAtIndexPath 中的 UICollectionViewCell 中更改 UIView 的框架