iOS UITableView 在过滤时滚动插入

标签 ios uitableview uiscrollview

我在 UITableView 滚动方面遇到一些问题。这是我的简单屏幕,其中有 UITextField 和 UITableView 以及单元格。当用户在 UITextField 中输入内容时,应用程序会过滤项目列表并重新加载 UITableView。它按预期工作。

enter image description here

在右侧屏幕上,您可以看到滚动时 UITableView 的外观。单元格位于 UITextField 下。

假设我滚动了一些单元格,如果我开始在 UITextField 中输入某些内容,我会得到过滤单元格的列表,但其中一些单元格位于 UITextField 下,我无法向下滚动它们。

enter image description here

最佳答案

默认情况下,当您使用新的行数据集重新加载表格时,表格的滚动偏移量不会改变。重新加载表格后需要滚动回到顶部:

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/

相关文章:

ios - 如何使用 Frank Cucumber 自动执行滑动/滚动手势?

iphone - "App Name must not contain the following characters"

ios - 如何获取 didSelectRowAtIndexPath 中的坐标

ios - 为什么重写 tableView( :viewForHeaderInSection:) change the results

ios - Xamarin TableView 崩溃

ios - 将 UIImageView 动态添加到 UIScrollview 中,但无法自动调整大小

ios - 移动到另一个 ViewController 时如何设置和关闭 SVProgressHUD

ios - ios 中的 SWRevealViewController 给出桥接 header 错误

ios - 连续计算实际日期和 future 日期之间的时间

ios - 与 UITapGestureRecognizer 一起使用时,collectionView 的 didSelectItemAt 不会被调用