1

这真让我抓狂。我正在 iPad 上创建一个拆分视图应用程序。

我在 UINavigationBar 内创建了一个 searchBar - 像这样的东西......

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

这对我这样显示 UISearchBar 来说很好......

在此处输入图像描述

我还设置了这个 UIBarButtonItem 以在侧窗格中显示主导航控制器。

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

在此处输入图像描述

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

此外,当我再次旋转设备时,UISearchBar 会发生以下情况

在此处输入图像描述

将搜索栏添加到 UINavigationBar 后如何更新其大小。即使使用 autoResizingMask 也不起作用。

searchBar.autoResizingMask =UIViewAutoresizingFlexibleWidth;

我在这里做错了什么?

4

1 回答 1

0

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

尝试使用不会改变的固定大小创建它。我的意思是,如果您的导航栏最小尺寸是(例如)320pt,而 barbutton 大约是 30pt,并且您需要将搜索栏放在中间(顺便说一句,这不是标准的,AFAIK),您必须将其设为 320 - (30+10)*2 = 240 点。搜索栏将被放置在中间,并且将有足够的空闲空间。

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

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

希望它有所帮助。

于 2012-06-19T12:25:23.667 回答