我有一个UIViewController,我想在其中添加一个UITableView和一个UISearchBar。 UISearchBar不应该添加到tableView中,而是保持在tableView上方。
我想到了包含viewController的这个实现:
- (void)viewDidLoad {
[super viewDidLoad];
self.testTableView = [[TestTableViewController alloc] init];
self.testTableView.edgesForExtendedLayout = UIRectEdgeNone;
self.searchBar = [[UISearchBar alloc] init];
self.searchBar.delegate = self.testTableView;
self.searchController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self.testTableView];
self.searchController.delegate = self.testTableView;
self.searchController.searchResultsDataSource = self.testTableView;
self.searchController.searchResultsDelegate = self.testTableView;
self.searchBar.frame = CGRectMake(500.0f, 70.0f-44.0f, 500.0f, 44.0f);
self.testTableView.view.frame = CGRectMake(500.0f, 70.0f, 500.0f, 500.0f);
// add views
[self.view addSubview:self.testTableView.view];
[self.view addSubview:self.searchBar];
}
TestTableViewController基本上是一个常见的TableViewController,带有一些虚拟数据。
这似乎工作得很好,但是当我进行搜索时,似乎将searchResults表视图添加到原始tableView中,并且最终会出现在滚动视图中有滚动视图时出现的奇怪的人工制品。
我发现,如果我将searchBar添加到tableView中,我就不会遇到这个问题:
self.testTableView.tableView.tableHeaderView = self.searchBar;
而不是:
[self.view addSubview:self.searchBar];
但这会导致其他问题(在searchBar上方,searchBar会滚动内容)。
此外: - 我无法使用新的UISearchController - 我无法使用故事板来实现这个
有没有人知道这里可能有什么问题?也许上面的代码中存在问题。
您可以在此处下载示例项目: http://www.file-upload.net/download-9987146/SearchTableViewTest.zip.html