我搜索了有关UISearchBar
的所有其他问题,似乎没有回答我的问题。我在顶部有一个导航视图,有一个UISearchBar
的桌面视图。当我点击搜索栏时,tableview
会变暗,键盘会出现,但uisearchbar
消失了。如果我点击黑暗的桌面视图,键盘将被解除,黑暗消失,UISearchBar重新出现。知道为什么它会消失吗?
这里有一些扩展UITableViewController的类中的代码:
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 44)];
searchBar.delegate = self;
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsDelegate = self;
//[self.tableView insertSubview:self.searchDisplayController.searchBar aboveSubview:self.tableView];
self.tableView.tableHeaderView = searchDisplayController.searchBar;
在我的.h文件中,我采用了这些原型:`但我没有实现任何方法,除了:
- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
{
[tableView registerClass:[EmailCell class] forCellReuseIdentifier:mailCellIdentifier];
}
已编辑:
我故意将tableview进一步向下移动,以便顶部导航视图和tableview之间有空格,发现搜索栏没有消失,当点击UISearchBar时,它在屏幕上向上移动,占据我加入的空白。有什么想法吗?
答案 0 :(得分:-1)
添加此方法
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
{
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
[self.tableView insertSubview:self.searchDisplayController.searchBar aboveSubview:self.tableView];
}
}
有关详细信息,请查看此link