我刚刚在常规 UIViewController 中实现了一个 UISearchController,我遇到了一个奇怪的问题。
我有一个 UIView,它完全适合我希望 UISearchBar 采用的大小。在第一次启动 View 时,我将 UISearchBar 作为 SubView 添加到此 UIView。
但是当我启动它时, UISearchBar 不会占用其父 UIView 的大小——它只占用整个屏幕的宽度。
如您所见,它与右侧的按钮重叠。
但是一旦我点击搜索栏并取消它,它就会调整到我想要的确切大小。
这可能是什么问题?我尝试将 SearchBar 中的 AutoLayout Constraints 添加到其父 View ,但它似乎没有改变任何东西。 [UIView addSubview:] 不处理这个吗?
Best Answer-推荐答案 strong>
UISearchController 的 View 行为确实很奇怪,但有一个简单的解决方法。
- 使用额外的容器 View
- 把 UISearchController 的 View 放进去
- 将 UISearchController 的 View 自动调整掩码设置为 UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
- 将 UISearchController 的框架设置为容器的 View 边界
此时 UISearchController.view 的大小不会超出 container.bounds。
关于ios - UISearchController searchBar 框架仅在第一次点击时调整大小,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/43278343/
|