【问题标题】:How reuse cells works in UITableView in iOS?iOS 的 UITableView 中如何重用单元格?
【发布时间】:2015-10-09 12:56:52
【问题描述】:

我有几个不同类型的行的 UITableView。我使用 2 个原型单元,因为我的所有单元都可以被这 2 个原型覆盖。在每个原型里面我有 2 个标签 - 上和下。

我根据它们所属的部分和行动态填充这些单元格的内容。但我有重用的问题。

我在其中一个单元格内设置了动态图像(根据特定条件)。我的问题是,当我滚动时 - 图像出现在单元格内的下一页上,该单元格不应该有这样的图像。我想这是重用的结果。

如果单元格属于该图像(第二种类型),我会尝试删除该图像。这在 iPhone 上运行良好,因为数据在不同的屏幕上(当我滚动到第二个单元格时,第一个单元格在屏幕之外)。我的问题是这不适用于 iPad - 因为两个单元格都在同一页面上。

任何想法如何解决这个问题?

【问题讨论】:

  • 请出示一些代码
  • prepareForReuse 方法中清除您的单元格。

标签: ios objective-c uitableview


【解决方案1】:

首先让我解释一下 Reuseidentifier 的工作原理。 假设您有三个在视图中可见的单元格。

您滚动您的表格,因为显示的第一个单元格向上滚动现在不可见将是双端队列,您的第四个单元格将使用该单元格。

简而言之,我可以解释它,但还有更多细节可用。

在您的情况下,您的一个单元格可以在滚动时轻松地重复用于另一个单元格。 您必须放置开关或正确处理它。 如果您更好地解释您的案例并添加代码 cellforrow 那么可以更好地帮助您。 我希望这能帮助您解决问题。

【讨论】:

  • 10 倍,@Imran。你给我一个线索。在配置单元格 (configureCell) 之前,我清除了这个图标(在 cellForRowAtIndexPath 内)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多