UISearchController與UITableView相互使用的小坑
阿新 • • 發佈:2019-02-19
先把程式碼貼出來,設定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向上移動了