SearchBar在处于活动状态时会离开UINavigationItem框架

时间:2017-11-01 06:54:49

标签: ios objective-c uinavigationitem uisearchcontroller titleview

我将searchController的{​​{1}}放在searchBar作为navigationItem,如下所示:

titleView

尽管未选中时它完全适合(取消项目未显示),但如果它成为第一响应者并且取消项目出现在self.navigationItem.titleView = self.searchController.searchBar; 旁边,则会轻微滑动searchBar。您可以看到以下结果:

Position of searchBar in navigationItem

我该如何解决这个问题?有解决方法吗?

2 个答案:

答案 0 :(得分:0)

您应该使用self.navigationItem.searchController代替self.navigationItem.titleView

self.navigationItem.searchController = self.searchController;

在此处了解详情https://developer.apple.com/documentation/uikit/uinavigationitem/2897305-searchcontroller

答案 1 :(得分:-1)

使用以下代码

if #available(iOS 11.0, *) {
     navigationItem.searchController = searchController
} else {
     // Fallback on earlier versions
     navigationItem.titleView = searchController?.searchBar
}