Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 8中的UI搜索栏-UI置换_Ios_Swift_Uinavigationbar_Uisearchbar_Uinavigationitem - Fatal编程技术网

iOS 8中的UI搜索栏-UI置换

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

我有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足够大,以适合其子视图

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

编辑


如果您没有使用导航栏进行导航,请尝试将搜索栏直接放在您的视图中。通过这种方式,您可以完全控制框架。

p.S.UISearchBar是UIView的一个子类,因此在将其设置为标题视图之前,您可能不需要将其放在另一个UIView中。如果之后调用sizeToFit(),则用框架初始化它并不重要。sizeToFit()更改了框架。抱歉,我理解,再次更新了问题-相同的问题可能是标题视图从导航栏框架的左侧偏移。您需要将搜索栏放在导航栏中吗?好的,如何将其放在导航栏中