实现 UISearchController 时遇到问题
Trouble implementing UISearchController
我在实施 UISearchController
时遇到问题
我有一个 UIViewController
,其中包含 UITableView
和 table 视图下方的一些按钮。
- (void)viewDidLoad {
[super viewDidLoad];
...
_searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
_searchController.searchResultsUpdater = self;
_searchController.dimsBackgroundDuringPresentation = NO;
_searchController.searchBar.scopeButtonTitles = @[];
_searchController.searchBar.delegate = self;
NSLog(@"tableViewHeader %@", NSStringFromCGRect(_tableView.tableHeaderView.frame));
NSLog(@"searchBar %@", NSStringFromCGRect(_searchController.searchBar.frame));
_tableView.tableHeaderView = _searchController.searchBar;
...
}
NSLog returns:
tableViewHeader {{0, 0}, {0, 0}}
searchBar {{0, 0}, {320, 44}}
总的来说,我似乎无法让 tableViewHeader
可见。由于我没有使用情节提要,我将 UITableView
实例化如下:
_tableView = [[UITableView alloc] init];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.separatorInset = UIEdgeInsetsZero;
_tableView.layoutMargins = UIEdgeInsetsZero;
_tableView.backgroundColor = [UIElementsStyleKit tableCellBackground];
[self.view addSubview:_tableView];
可能出了什么问题?
谢谢
//编辑:
以防万一它不是隐含的,UITableView
的维度由 NSLayoutConstraints
定义并且它显示完美。问题只是 UISearchBar
没有显示。
我的问题的解决方案是在将 UITableView
作为子视图添加到 self.view
之后定义 UISearchController
。
我将代码移到 [self.view addSubview:_tableView]
之前,一切都按预期进行。
我在实施 UISearchController
我有一个 UIViewController
,其中包含 UITableView
和 table 视图下方的一些按钮。
- (void)viewDidLoad {
[super viewDidLoad];
...
_searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
_searchController.searchResultsUpdater = self;
_searchController.dimsBackgroundDuringPresentation = NO;
_searchController.searchBar.scopeButtonTitles = @[];
_searchController.searchBar.delegate = self;
NSLog(@"tableViewHeader %@", NSStringFromCGRect(_tableView.tableHeaderView.frame));
NSLog(@"searchBar %@", NSStringFromCGRect(_searchController.searchBar.frame));
_tableView.tableHeaderView = _searchController.searchBar;
...
}
NSLog returns:
tableViewHeader {{0, 0}, {0, 0}}
searchBar {{0, 0}, {320, 44}}
总的来说,我似乎无法让 tableViewHeader
可见。由于我没有使用情节提要,我将 UITableView
实例化如下:
_tableView = [[UITableView alloc] init];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.separatorInset = UIEdgeInsetsZero;
_tableView.layoutMargins = UIEdgeInsetsZero;
_tableView.backgroundColor = [UIElementsStyleKit tableCellBackground];
[self.view addSubview:_tableView];
可能出了什么问题?
谢谢
//编辑:
以防万一它不是隐含的,UITableView
的维度由 NSLayoutConstraints
定义并且它显示完美。问题只是 UISearchBar
没有显示。
我的问题的解决方案是在将 UITableView
作为子视图添加到 self.view
之后定义 UISearchController
。
我将代码移到 [self.view addSubview:_tableView]
之前,一切都按预期进行。