2

我想我想把它们移到我最喜欢的地方。我可以设置框架,但我应该在哪里设置呢?

另外,我如何确保表格仍然显示与搜索结果是否为空无关?

这是我尝试过的:

- (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;
}

结果:

  1. 当文本为 searchResultsTableView 时仍为空
  2. 当有一个字符时,框架还没有移动
  3. 当有超过 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. 尴尬的
  2. 一个短暂的故障。我不希望这个动画。我不想让我的用户知道我有这个问题。好吧,它在不到 1 秒的时间内看起来确实有点动画

否则最终结果完全如我所愿。

我想知道是否有人可以改进这一点。

4

0 回答 0