我在UISearchBar
(在TabBarController的其中一个子视图上)以编程方式添加UIView
时出现问题:
首次加载屏幕时,搜索栏太宽,无法完全适合视图。但是,当您点按内部然后点击Cancel
按钮时,搜索栏会调整大小以便它适合UIView。
我在GitHub上传了一个示例项目 - 可以在BlueViewController
类的第二个选项卡上观察到不正确的行为。
我已经尝试了很多东西,你可以在代码中看到并搜索最流行的StackOverflow答案,但到目前为止,他们都没有解决这个问题。
这是项目的链接: https://github.com/asia-t/tabbartest
如果有人可以了解可能发生的事情,那就太好了。
答案 0 :(得分:7)
您可以实施以下方法来修复搜索栏的框架:
override func viewDidLayoutSubviews() {
var searchBarFrame = searchController.searchBar.frame
searchBarFrame.size.width = vanillaSearchBar.frame.size.width
searchController.searchBar.frame = searchBarFrame
}