1. 程式人生 > >UISearchController與UITableView相互使用的小坑

UISearchController與UITableView相互使用的小坑

先把程式碼貼出來,設定UISearchController的SerachBar為UITableView的HeaderView,核心程式碼如下:

    _tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    _tableView.delegate = self;
    _tableView.dataSource = self;
    _tableView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:_tableView];
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
    self.searchController.searchResultsUpdater = self;
    self.searchController.dimsBackgroundDuringPresentation = NO;
    self.tableView.tableHeaderView = self.searchController.searchBar;
這樣即可正常顯示。

注意設定:self.searchController.hidesNavigationBarDuringPresentation = YES;   //這個預設是yes的。

坑:如果我們在ViewController中設定了self.edgesForExtendedLayout = UIRectEdgeNone; 會出現表格的一部分被searchBar給蓋住,也就是cell向上移動了