UISearchDisplayController的searchResultsTableView的Contentsize不正确的问题

来源:互联网 发布:淘宝订单贷款突然关闭 编辑:程序博客网 时间:2024/05/18 19:46

今天在使用UISearchDisplayController展示搜索结果的时候出现了一个问题,searchResultsTableView的内容在每次搜索之后会被抬的越来越高.如下图:
这里写图片描述
最终发现是键盘有关系,解决方法如下:

// 解决searchResultsTableView的Contentsize不正确的问题- (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];}- (void) keyboardWillHide {    UITableView *tableView = [[self searchDisplayController] searchResultsTableView];    [tableView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)];    [tableView setScrollIndicatorInsets:UIEdgeInsetsMake(0, 0, 0, 0)];}

另外补充:
UISearchDisplayController点击searchbar后产生动画的原因:
首先需要具备2个条件之一;
1. searchBar的坐标y值为0,此时设置了viewController为UIRectEdgeNone.
2.viewCongroller内有tableView(坐标y值为0),并且searchBar被放到了tableViewHeaderView上.
系统的NavigationBar会在点击searchable后自动被隐藏,self.view 或 tableView会自动移动到顶部.这就看起来像是searchbar自动跑到了导航栏上一样。

0 0
原创粉丝点击