最近没有什么新的项目, 偶尔迭代下项目挺无聊的,就开始无偿帮别人改改BUG, 写写功能,群里面碰到一个设置UISearchBar 高度问题导致左右导航栏item 位置不对的问题, 开始有了兴趣,并加了好友远程调试(加完才知道是个程序媛)
问题: 程序运行以后item 位置不对, push 页面后,返回pop item 正常。效果如下:(PS :这个我自己写测试用的,有的丑可忽略)
思路解决问题:在远程中看了代码发现使用这个段代码,
if(@available(iOS11.0, *)) {
[[self.searchBar.heightAnchor constraintEqualToConstant:44.0] setActive:YES];
}
这段代码不会陌生, 后面的setActive 不知道什么意思,查了API 发现强行激活searchBar 高度。 就是这里面出来问题。 那个程序媛把这个方法放在分类,new一个新建UISearchBar 里。 在使用 setActive 激活searchBar 高度以后, 导航栏左右item 并不知道,所以显示的位置还停留之前。 想明白这点 [[self.searchBar.heightAnchor constraintEqualToConstant:44.0] setActive:YES]; 放在 viewDidLayoutSubviews 方法里。 问题解决。 程序媛表示很开心!! 我也表示惭愧:2年多经验花了2个小时才解决这个问题。