前言
最近项目测试人员说iPhone XR 上点击搜索结果后返回搜索框下移(即searchBar 下移)。
背景介绍
在项目中,我在首页实现了一个UISearchController 把其searchBar 放置一个固定位子,然后点击搜索后,UISearchController的界面会显示出来。我在UISearchController 中添加了搜索界面的添加。我自己复现问题时发现,当我每次点击搜索结果后,再次push一个UIViewController,这个时候我发现只要界面跳转一次searchBar就会下移固定高度。(只在有留海的iPhone 系列有此问题)
解决方式
此时我查看了其界面布局位置发现searchBar 父类view 下移。然后我能想到的就是把其改回起始位置。
然后在首页界面(即放置searchBar的 UIViewController)的viewWillAppear中判断searchBar的superView 位置是否改变,若改变把其改回去。具体代码如下
-(void)checkSearchBar
{
if (self.searchBar.superview.frame.origin.y > 0) {
CGRect rect = self.searchBar.superview.frame;
rect.origin.y = 0;
self.searchBar.superview.frame = rect;
}
}