我想我想把它们移到我最喜欢的地方。我可以设置框架,但我应该在哪里设置呢?
另外,我如何确保表格仍然显示与搜索结果是否为空无关?
这是我尝试过的:
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
controller.searchResultsTableView.frame=self.placeForTableView.frame;
controller.searchResultsTableView.hidden=false;
controller.searchResultsTableView.alpha =1;
[self debugMode:nil];
return true;
}
结果:
- 当文本为 searchResultsTableView 时仍为空
- 当有一个字符时,框架还没有移动
- 当有超过 2 个字符时,事情会如我所愿。
然后我添加了这样的东西:
- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView
{
[self putTableViewWhereItBelongs:tableView];
}
- (void)searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView
{
[self putTableViewWhereItBelongs:tableView];
}
-(void)putTableViewWhereItBelongs :(UITableView *) tableView
{
[self.view addSubview:tableView];
tableView.frame=self.placeForTableView.frame;
tableView.hidden=false;
tableView.alpha =1;
}
这完全符合我的意愿,只需要一点点。一开始它不起作用。一开始 tableView 既不显示也不隐藏。
另一个更新:
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
//UISearchDisplayController * controller = [self displayControllerForThisSearchBar:searchBar];
if (IsEmpty(searchBar.text)) {
searchBar.text=@" ";
searchBar.text=@"";
}
//[self putTableViewWhereItBelongs:controller.searchResultsTableView];
}
问题:
- 尴尬的
- 一个短暂的故障。我不希望这个动画。我不想让我的用户知道我有这个问题。好吧,它在不到 1 秒的时间内看起来确实有点动画
否则最终结果完全如我所愿。
我想知道是否有人可以改进这一点。