在点击搜索按钮之前不显示 UISearchController table
Don't display the UISearchController table until the search button is tapped
似乎 UISearchController
的默认行为是在 UISearchBar
中输入字符后立即显示空的 table。我正在执行的搜索不会在输入字符时进行搜索,而是在点击“搜索”按钮时进行搜索。
因此,在实际搜索发生之前,我不想显示空的 table。我该如何做到这一点?
我尝试将 table 设置为隐藏,直到点击搜索按钮,但看起来空的 table 与 UISearchController
table,因为在 table.
上调用了 none 个数据源方法
在这种情况下,您可以解决一些问题,例如创建 UIView 并在 tableview 上添加作为子视图以使其隐藏。一旦用户点击搜索按钮删除该视图。
您看到的空 table 视图来自您的搜索结果控制器,它是 "immediately" 由 UISearchController "when the user enters text in the search bar" 显示的。 (source)
隐藏搜索结果控制器中的 table 视图,直到您准备好显示它似乎是最简单的解决方案。但是正如您发现的那样,在显示搜索结果控制器时,UISearchController 将根视图上的 isHidden
属性 的值设置为 false
。在我的调试会话中,每次搜索栏开始编辑或搜索文本更改时,UISearchController 都会通过调用名为 _updateVisibilityOfSearchResultsForSearchBar:
.
的私有方法来执行此操作
您可以通过在搜索结果控制器中将 table 视图添加为根视图的子视图(然后根据需要隐藏或显示 table 视图)来解决该问题,或者通过调整根视图的 alpha
属性 的值(与 isHidden
不同,可以设置动画)。
似乎 UISearchController
的默认行为是在 UISearchBar
中输入字符后立即显示空的 table。我正在执行的搜索不会在输入字符时进行搜索,而是在点击“搜索”按钮时进行搜索。
因此,在实际搜索发生之前,我不想显示空的 table。我该如何做到这一点?
我尝试将 table 设置为隐藏,直到点击搜索按钮,但看起来空的 table 与 UISearchController
table,因为在 table.
在这种情况下,您可以解决一些问题,例如创建 UIView 并在 tableview 上添加作为子视图以使其隐藏。一旦用户点击搜索按钮删除该视图。
您看到的空 table 视图来自您的搜索结果控制器,它是 "immediately" 由 UISearchController "when the user enters text in the search bar" 显示的。 (source)
隐藏搜索结果控制器中的 table 视图,直到您准备好显示它似乎是最简单的解决方案。但是正如您发现的那样,在显示搜索结果控制器时,UISearchController 将根视图上的 isHidden
属性 的值设置为 false
。在我的调试会话中,每次搜索栏开始编辑或搜索文本更改时,UISearchController 都会通过调用名为 _updateVisibilityOfSearchResultsForSearchBar:
.
您可以通过在搜索结果控制器中将 table 视图添加为根视图的子视图(然后根据需要隐藏或显示 table 视图)来解决该问题,或者通过调整根视图的 alpha
属性 的值(与 isHidden
不同,可以设置动画)。