UISearchController:用于显示和搜索的单个或单独的表视图

时间:2018-08-03 07:05:45

标签: ios swift uitableview uisearchcontroller

我需要一个用于显示数据列表的表格视图的搜索栏,不确定是否应该使用一个表格视图进行显示和搜索,还是分别使用单独的表格视图进行显示和搜索。

单表视图:

只需切换数据源,

+ 感觉更易于实现
-如果要保持显示表格视图的滚动位置(搜索后),需要进行额外的工作

单独的表格视图:

+无需额外的工作即可保留显示表视图的滚动偏移量
-需要在显示和搜索模式之间切换的额外工作

我错过了任何重要评论吗?推荐的方法是什么?

更新:

  1. 我需要搜索栏位于顶部,因此它不能是表视图的tableHeaderView(当表视图滚动时滚动)或节标题视图,因为我有不同的节。

谢谢!

2 个答案:

答案 0 :(得分:0)

我使用了单个表格视图,并使用了只读属性来根据搜索文本过滤项目数组。

我将原始数据存储在属性X中,并根据在搜索栏中输入的文本过滤了属性Y(只读)返回的数据,并将其用作表格数据源。

使用搜索栏委托方法,您可以在用户向搜索栏中输入文本时过滤表的内容。

答案 1 :(得分:0)

第一种是建议的实现搜索功能的方法。这样一来,管理数据源便比处理两个不同的表视图更为容易。

您可以尝试使用 UISearchController ,它为searchBar提供TableView,并可以使用委托方法来处理这种情况。

Herehere是一些很好的教程,可以做到这一点。