【发布时间】:2016-02-23 21:24:58
【问题描述】:
我有一个几乎全屏的容器视图,没有状态栏。
然后我创建了一个 UISearchController 和一个 UITableView。我正在使用 ios 9 并以编程方式做事。我遇到的错误是当触摸搜索栏时,范围选项在其下方打开,但表格视图没有正确向下滑动。我该如何解决这个问题?
我 viewDidLoad 中的代码是:
// Search controller
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.searchBar.scopeButtonTitles = @[@"A", @"B", @"C"];
self.searchController.searchBar.delegate = self;
[self.searchController.searchBar setTranslatesAutoresizingMaskIntoConstraints:NO];
// UITableView
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
self.tableView.translatesAutoresizingMaskIntoConstraints = NO;
// Container view is defined as the whole screen except 20 points at the top where the status bar is
[containerView addSubview:self.searchController.searchBar];
[containerView addSubview:self.tableView];
// The constraints - something is probably wrong here?
// Search bar constraints
NSDictionary *views2 = @{@"searchBar": self.searchController.searchBar};
[containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[searchBar]|" options:0 metrics:nil views:views2]];
[containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[searchBar]|" options:0 metrics:nil views:views2]];
// Tableview constraints
NSDictionary *views = @{@"tableView": self.tableView};
[containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[tableView]|" options:0 metrics:nil views:views]];
[containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableView]|" options:0 metrics:nil views:views]];
我需要让搜索栏范围选项和表格视图一起正确滑动。这是如何以编程方式完成的?
【问题讨论】:
-
具有讽刺意味的是,我的主要错误被发现隐藏在我的代码中,几周前我“不小心”在表格视图中添加了一个愚蠢的偏移量,导致我的大部分问题(不在上面的代码中)
标签: ios uitableview autolayout ios9 uisearchcontroller