久闻UISearchController的bug奇多,没想多也被我碰上了
发现问题
把 UISearchController
的 searchBar
赋值到控制器A的导航栏的titleView上,在push到控制器B时view往下移动了11,在pop回来的时候控制器A的view又往上移动了11,查了文档,iOS11以后就改动了,但是官方也没说解决办法…
网上的办法
- 设置searchBar时使用navigationItem.titleView = searchBar ❌
searchVC.searchBar.heightAnchor.constraint(equalToConstant: 44).isActive = true
还是解决不了根本问题 ❌- 自定义一个titleView然后把searchBar再添加上去,点击searchBar时frame又会出现问题 ❌
- 直接自定义searhBar,可以是可以,但是太麻烦,改动太大 ❌
我的解决办法
最终在Stack Overflow上找到了答案
直接在控制器A里添加如下两行代码搞定,对项目改动最小,目前没有发现问题
override func viewWillAppear