【问题标题】:Reloading rows makes table "jump" when table scrolled当表格滚动时,重新加载行会使表格“跳跃”
【发布时间】:2018-01-08 12:54:31
【问题描述】:

我有一个表格,其中有一些行,每行都包含一个文本字段。当文本字段更新表的某些行时,必须更新以显示一些新数据。只要表格根本不向下滚动,它就可以正常工作。

但是,如果表格滚动,重新加载行会导致表格出现“跳转”动画。我的代码:

formFieldsTable.reloadRows(at: [indexPath,indexPath2], with: .none)

【问题讨论】:

  • 您使用具有动态高度的单元格吗?还是您没有在 iOS 11 中禁用动态高度单元格?
  • 嗯,我确实在 heightForRow 上返回 UITableViewAutomaticDimension 但是高度始终保持不变,它不像那里实际上有任何动态,我只是为了方便而使用它。
  • 尝试不使用它。在 heightForRow 中返回一个值并设置estimatedRowHeight = 0
  • 似乎有效。非常感谢我应该想到这一点。我只是想象,因为实际上并没有涉及任何动态,所以它不应该发生,但显然不会。

标签: ios swift uitableview autoscroll


【解决方案1】:

根据上述任一 cmets,这为我解决了同样的问题:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 75.0
}

override func viewDidLoad() {
    super.viewDidLoad()
    formFieldsTable.estimatedRowHeight = 75
    ...
}

【讨论】:

  • 这可行,但它不考虑动态单元格
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2015-03-25
  • 1970-01-01
  • 2019-09-08
  • 2013-03-19
  • 1970-01-01
相关资源
最近更新 更多