【发布时间】:2018-01-03 03:19:46
【问题描述】:
在 iOS 11 中,Apple 重新设计了 UISearchBar,使角更圆,高度更大。将 UISearchBar 添加到 navigationBar 非常简单,只需使用 navigationItem.titleView = searchBar 将其设置为 navigationItem 的 titleView。
但是,在 iOS 11 中,它似乎不再按预期工作。 查看我们使用 iOS 10 和 iOS 11 比较相同设置的屏幕
您可以清楚地看到 SearchBar 增加了 NavigationBar 的大小,但条形按钮没有正确对齐。此外,searchBar 不再使用左侧的可用空间。
将 searchBar 放入包装视图以获取 iPad 上的取消按钮,如此处所述Cancel button is not shown in UISearchBar 似乎也不再起作用,因为 searchBar 根本不可见。
如果有人遇到类似问题或已经知道如何解决/改进此问题,我将不胜感激。
这是使用 Xcode 9 Beta 4 构建的。也许未来的版本会解决这个问题。
更新:
由于这个问题没有得到解决,我们决定使用以下解决方案。 我们向 NavBar 添加了一个新的 UIBarButtonItem,然后它呈现了一个新的 ViewController,我们只在其中放置了一个 searchBar,没有其他任何东西到 NavBar 中,这似乎可以工作。使用选定的答案可能是最好的解决方案,因为带有 iOS 11 的 Apple 希望我们使用这个新设计,即使它没有给我们最初想要的结果。另一种可能解决此问题的方法可能是自定义 SearchBar,但这是另一个主题。
【问题讨论】:
-
我花了几个小时试图解决同样的问题。请在此处查看我的答案:stackoverflow.com/a/53264329/3231194 :) 我将其发布为答案,以便轻松查看。谢谢!
标签: uinavigationbar uisearchbar ios11