UINavigationBar中的UISearchBar在旋转方向时改变宽度

时间:2012-05-16 11:11:13

标签: uinavigationcontroller uisplitviewcontroller uisearchbar uibarbuttonitem

这让我发疯了。我正在iPad上创建一个splitview应用程序。

我在UINavigationBar中创建了一个searchBar - 就像这样......

UISearchBar *searchBar = [[UISearchBar alloc] initWitFrame:CGRectZero];
[searchBar setPlaceHolder:@"Search"];
[searchBar sizeToFit];
[searchBar setDelegate:self];
[self.navigatioItem setTitleView:searchBar];

这对于我这样显示UISearchBar就好了......

enter image description here

我也将此UIBarButtonItem设置为在侧窗显示主导航控制器。

当设备旋转到横向并且UIBarButtonItem被隐藏时,会出现问题。然后searchBar就像这样......

enter image description here

由于barButtonItem被隐藏且搜索栏的大小无法更新,因此侧面有一些空间似乎存在。

此外,当我再次旋转设备时,这是UISearchBar发生的事情

enter image description here

如果将搜索栏添加到UINavigationBar后,如何更新搜索栏的大小。即使使用autoResizingMask也行不通。

searchBar.autoResizingMask =UIViewAutoresizingFlexibleWidth;

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题(这不是搜索栏,而是一些UIView),这就是我解决它的方法:

尝试使用不会更改的固定大小创建它。我的意思是如果你的导航栏最小尺寸是(例如)320pt,而barbutton大约是30pt,你需要将搜索栏放在中间(BTW不是标准,AFAIK),你必须使它成为320 - (30 + 10)* 2 = 240pt。搜索栏将放置在中间位置,并且有足够的位置可以自由使用。

这样既不会改变它的大小,也不会影响其他项目。

或者我建议你把它放在正确的位置,而不是放在中间位置。

希望它有所帮助。

相关问题