iOS-11中UISearchController的一些坑

529 阅读1分钟

iOS 11中新增了属性 self.navigationItem.searchController = self.searchController; 自带了系统搜索的效果特别好用,但是使用的过程中踩了不少坑。 会出现如图的情况,隐藏了之后又自动弹出来。

QQ20180111-105139.gif

1.self.navigationController.navigationBar.translucent = NO; 注释掉这一行 如果还不行 那就是约束的原因了,这个界面的tableview不能写在安全区域内.

if (@available(iOS 11.0, *)) {
      make.edges.equalTo(self.view.mas_safeAreaLayoutGuide);
  }

2.点击UISearchController后 tableview往下偏移了

1533637002584.jpg

这是由于跟系统的self.edgesForExtendedLayout = UIRectEdgeNone;配合不当造成的,所以需要修改成默认值self.edgesForExtendedLayout = UIRectEdgeAll;以及self.definesPresentationContext = YES;