【问题标题】:UITableView in Swift: Offscreen cells are not pre-loadedSwift 中的 UITableView:未预加载屏幕外单元格
【发布时间】:2015-05-10 14:25:57
【问题描述】:

我对 UITableView 有一点问题。当我第一次向下滚动时,不会加载屏幕外的单元格。当我向上滚动(使未显示的单元格再次离开屏幕)并再次向下滚动时,它们突然出现。我认为这与dequeueReusableCellWithIdentifier 有关。知道如何解决这个问题吗?

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CustomCellClass
return cell

【问题讨论】:

  • 显示更多代码。您需要在 cellForRowAtIndexPath 中设置您的单元格。不仅“出列”它。

标签: xcode uitableview swift


【解决方案1】:

这是UITableView 的预期行为。 UITableView 的全部意义在于将需要的单元排队并释放不需要的单元来管理内存。

如果您希望所有单元格都被加载(我建议不要这样做,糟糕的性能和内存使用),填充滚动视图,其中每行偏移一些 y 常数的视图。

再一次,没有加载单元格是有原因的,这就是UITableView 的重点。 Apple 没有执行 load-all 实现,我认为您也不应该这样做。

【讨论】:

  • 谢谢,但是为什么向下滚动时屏幕外的单元格没有立即显示?
  • @Jack_55 你可能错过了一些正确的实现。用一些代码更新你的问题:-)
【解决方案2】:

似乎我已经检查了导致此行为的单元格的隐藏选项。移除后,它可以完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2017-03-10
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    相关资源
    最近更新 更多