UISearchBar 在 iOS 8 - UI 位移

UISearchBar in iOS 8 - UI displacement

我有 UINavigationItem,我想向其添加 UISearchBar。我是这样做的:

let searchBar = UISearchBar(frame: CGRectMake(0, 0, self.navigationController!.navigationBar.bounds.width, self.navigationController!.navigationBar.bounds.height))
//searchBar.sizeToFit()
searchBar.showsCancelButton = true
let barWrapper = UIView(frame: searchBar.frame)
barWrapper.addSubview(searchBar)
self.navigationItem.titleView = barWrapper

结果如下:

这是怎么回事?

sizeToFit() 将使 UIScrollView 大到足以容纳其子视图。

您需要调整它的大小以适合导航栏以消除间隙。

编辑

如果您不使用导航栏进行导航,请尝试将搜索栏直接放在您的视图中。这样您就可以完全控制框架。