似乎UISearchController
的默认行为是在UISearchBar
中输入字符后立即显示空表。我正在实施的搜索不会在输入字符时进行搜索,但会在点按“搜索”按钮时进行搜索。
因此,在实际搜索发生之前,我不想显示空表。我该如何实现这一目标?
我试图将表设置为隐藏,直到点击搜索按钮,但看起来似乎没有显示的空表与UISearchController
表相同,因为没有数据源方法是在那张桌子上喊道。
答案 0 :(得分:1)
您看到的空表视图来自您的搜索结果控制器,当用户在搜索栏中输入文本时,UISearchController会“立即”显示该视图。 (source)
隐藏搜索结果控制器中的表格视图,直到您准备好显示它为止,这似乎是最简单的解决方案。但正如您所发现的,在显示搜索结果控制器时,UISearchController将根视图上的isHidden
属性的值设置为false
。在我的调试会话中,每次搜索栏开始编辑或搜索文本发生更改时,UISearchController都会通过调用名为_updateVisibilityOfSearchResultsForSearchBar:
的私有方法来执行此操作。
您可以通过在搜索结果控制器中添加表视图作为根视图的子视图(然后根据需要隐藏或显示表视图)或通过调整{{1}的值来解决该问题根视图的属性(与alpha
不同,可以设置动画)。
答案 1 :(得分:0)
在这种情况下,您可以解决方法,例如创建UIView并在tableview上添加子视图以使其隐藏。用户点击搜索按钮后删除该视图。