在iOS 11中,Apple通过重新设计拐角和变大了高度来重新设计UISearchBar。将UISearchBar添加到navigationBar相当简单,只需使用即可将其设置为navigationItem的titleView navigationItem.titleView = searchBar
。
但是,在iOS 11中,它似乎不再能正常工作。看看我们使用iOS 10和iOS 11比较相同设置的屏幕
您可以清楚地看到SearchBar增大了NavigationBar的大小,但是条形按钮没有正确对齐。而且searchBar不再使用左侧的可用空间。
如此处所述,将searchBar放入包装器视图中以获取iPad上的“取消”按钮,UISearchBar中未显示“取消”按钮,似乎也不起作用了,因为那时根本没有可见的searchBar。
如果有人遇到类似问题或已经知道如何解决/改进此问题,我将非常感激。
这是使用Xcode 9 Beta 4构建的。也许将来的版本会解决此问题。
更新:
由于此问题尚未解决,因此我们决定使用以下解决方案。我们在NavBar中添加了一个新的UIBarButtonItem,然后提供了一个新的ViewController,我们只在其中放置了searchBar,而在NavBar中什么也没用,这似乎可行。使用选择的答案可能是最好的解决方案,因为具有iOS 11的Apple希望我们使用此新设计,即使它不能给我们最初想要的结果。解决此问题的另一种方法可能是自定义SearchBar,但这是另一个主题。