iOS 导航栏 添加 UISearchBar 宽高BUG

       最近没有什么新的项目, 偶尔迭代下项目挺无聊的,就开始无偿帮别人改改BUG, 写写功能,群里面碰到一个设置UISearchBar 高度问题导致左右导航栏item 位置不对的问题, 开始有了兴趣,并加了好友远程调试(加完才知道是个程序媛)

问题: 程序运行以后item 位置不对, push 页面后,返回pop item 正常。效果如下:(PS :这个我自己写测试用的,有的丑可忽略)


iOS 导航栏 添加 UISearchBar 宽高BUG_第1张图片


思路解决问题:在远程中看了代码发现使用这个段代码,

 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个小时才解决这个问题。



iOS 导航栏 添加 UISearchBar 宽高BUG_第2张图片

你可能感兴趣的:(iOS 导航栏 添加 UISearchBar 宽高BUG)