UICollectionViewCell中的标签文本未更新

时间:2014-11-28 09:29:00

标签: ios objective-c uikit uicollectionview uicollectionviewcell

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

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

2 个答案:

答案 0 :(得分:1)

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

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

  1. 删除了UILabel的引用插座(在“显示连接检查器”中)
  2. 从故事板中删除了UILabel
  3. 重新添加UILabel
  4. 将引用插座重新连接到swift文件代码属性
  5. 不知何故,一切都恢复正常。

    作为旁注:Radwa的答案的快速3.1版本是:

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

答案 1 :(得分:0)

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

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

[self.collectionView reloadItemsAtIndexPaths: indexpathArray];

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