我在 UITableView 滚动方面遇到一些问题。这是我的简单屏幕,其中有 UITextField 和 UITableView 以及单元格。当用户在 UITextField 中输入内容时,应用程序会过滤项目列表并重新加载 UITableView。它按预期工作。
在右侧屏幕上,您可以看到滚动时 UITableView 的外观。单元格位于 UITextField 下。
假设我滚动了一些单元格,如果我开始在 UITextField 中输入某些内容,我会得到过滤单元格的列表,但其中一些单元格位于 UITextField 下,我无法向下滚动它们。
最佳答案
默认情况下,当您使用新的行数据集重新加载表格时,表格的滚动偏移量不会改变。重新加载表格后需要滚动回到顶部:
self.tableView.scrollToRow(at: IndexPath(row: 0, section: 0),
at: .top,
animated: true)
如果没有默认占位符单元格来表示“无匹配结果”,则没有结果,因此在索引 (0,0) 处没有可表示的单元格,则在上述代码之前添加以下条件:保护崩溃:
guard cellResults.count > 0 else { return }
关于iOS UITableView 在过滤时滚动插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50608370/