UISearchDisplayController 有个坑,如果UISearchBar 不是添加在tableView header里面的话,会出现searchResultsTableView 位置偏移问题,网上找了半天看到的答案,mark一下。
- (void)searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView {
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];
}
- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
}
///解决 由于SearchBar 不是加在tableView header上导致的searchResultsTableView偏移问题。
- (void) keyboardWillHide:(NSNotification *)notification {
CGFloat height = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height;
UITableView *tableView = [_searchDisplayController searchResultsTableView];
UIEdgeInsets inset;
[[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 ? (inset = UIEdgeInsetsMake(0, 0, height, 0)) : (inset = UIEdgeInsetsZero);
[tableView setContentInset:inset];
[tableView setScrollIndicatorInsets:inset];
}