iOS 8中的UI搜索栏-UI置换
我有UINavigationItem,我想将UISearchBar添加到其中。我是这样做的:iOS 8中的UI搜索栏-UI置换,ios,swift,uinavigationbar,uisearchbar,uinavigationitem,Ios,Swift,Uinavigationbar,Uisearchbar,Uinavigationitem,我有UINavigationItem,我想将UISearchBar添加到其中。我是这样做的: let searchBar = UISearchBar(frame: CGRectMake(0, 0, self.navigationController!.navigationBar.bounds.width, self.navigationController!.navigationBar.bounds.height)) //searchBar.sizeToFit() searchBar.shows
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足够大,以适合其子视图
您需要调整它的大小以适应导航栏以消除间隙
编辑
如果您没有使用导航栏进行导航,请尝试将搜索栏直接放在您的视图中。通过这种方式,您可以完全控制框架。p.S.UISearchBar是UIView的一个子类,因此在将其设置为标题视图之前,您可能不需要将其放在另一个UIView中。如果之后调用sizeToFit(),则用框架初始化它并不重要。sizeToFit()更改了框架。抱歉,我理解,再次更新了问题-相同的问题可能是标题视图从导航栏框架的左侧偏移。您需要将搜索栏放在导航栏中吗?好的,如何将其放在导航栏中