如何移动searchResultsTableView

时间:2012-11-23 08:53:59

标签: objective-c xcode uisearchdisplaycontroller

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

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

这就是我的尝试:

- (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个字符时,事情可以按照我的意愿运作。
  4. 然后我添加了这样的东西:

    - (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秒
    3. 否则最终结果完全符合我的要求。

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

0 个答案:

没有答案