UISearchControllerr 的那些坑
UISearchControllerr 这个东西具体是什么我就不说了,(还是说一下吧,iOS8.0以后替代UISearchBar + UISearchDisplayController的组合)
点击搜索框,自动弹到顶部,
// 必须要是全局的
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
// 这个很关键,不加这个句话searchBar有时会显示不正常
self.definesPresentationContext = YES;
self.searchController.delegate = self;
self.searchController.active = NO;
self.searchController.dimsBackgroundDuringPresentation = YES;
[self.searchController.searchBar sizeToFit];
// UISearchResultsUpdating
self.searchController.searchResultsUpdater = self;
self.tableView.tableHeaderView = self.searchController.searchBar;
// 这个很关键,不加这个句话searchBar有时会显示不正常
self.definesPresentationContext = YES;
原因:http://www.mobile-open.com/2015/86290.html 说得很清楚
UISearchController继承自UIViewController,也就是说UISearchController自身也带有一个View。但我们在使用UISearchController的时候并未将UISearchController自带的View添加在self.view上,也就是未指定那个controller显示UISearchController自带View上的控件。
查找到UIViewController里有一个属性:@property (nonatomic,assign)BOOL definesPresentationContext NS_AVAILABLE_IOS 5;
-坑1:UISearchControllerr要是全局的
-坑2:self.definesPresentationContext = YES;这句话