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

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

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

【问题讨论】:

  • 请按照您尝试管理的方式添加一些代码。
  • @andlin 重新加载视图。

标签: ios objective-c uikit uicollectionview uicollectionviewcell


【解决方案1】:

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

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

  1. 删除了 UILabel 的引用出口(在“显示连接检查器”中)
  2. 从情节提要中删除了 UILabel
  3. 重新添加了 UILabel
  4. 将引用出口重新连接到 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];

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多