UISearchBar:如何停止点击时的调整大小?

6
我有一个带有UISearchDisplayController的UISearchBar作为UINavigationBar的标题视图。在导航栏中的搜索栏两侧还有两个按钮。
当点击UISearchBar时,它会变得更宽,并覆盖其右侧的按钮。
如何阻止它变得更宽?
尝试但未成功的方法:
- 如果设备旋转,则扩展的搜索栏将变为原始大小。因此,在searchBarTextDidBeginEditing中尝试调用[searchBar setNeedsLayout]。 - 在IB中使用所有不同的自动调整大小掩码选项。
编辑:没有提到,但这是在iPhone上(因为我们可以在iPad中将搜索栏放在工具栏中)。

可能是重复问题并已有答案:https://dev59.com/b07Sa4cB1Zd3GeqP2lNw - Collin Price
@CollinPrice 很遗憾,你提到的链接中的答案不起作用。:( 例如在searchBarTextDidBeginEditing:(UISearchBar *)searchBar方法中添加[self.searchBar setFrame:CGRectMake(0.0, 0.0, 150.0, 44.0)];什么也没做... - s-t
似乎与searchDisplayControllerDidBeginSearch:触发,但它仍然会扩展一点-这一定是标题视图的自动调整大小。 - s-t
1个回答

9

实际上,参考这个答案,如果将搜索栏放在所需大小的UIView中,那么这将作为NavBar的标题视图设置,它不会变宽!

但是...由于您无法根据需要显示/隐藏取消按钮,我意识到它并不是很有用。
(如此问题/答案中所示)


是的,我认为我们只需要将UISearchBar包含在一个具有所需宽度的UIView中。@s-t - KarenAnne
这太聪明了 - 非常感谢。刚刚帮了我一个大忙! - Brittany

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接