2011-11-06 74 views
1

我有一个TableView以及底部的搜索按钮。我想要搜索按钮使SearchBar在顶部弹出并进入焦点。否则,不应该显示SearchBar切换iOS中的搜索栏

将搜索栏放在TableView上方很容易,但是有没有办法用动画隐藏/显示它?

谢谢。

回答

1

您是否尝试过使用-[UITableView scrollRectToVisible:animated:]方法?我认为UISearchBar视图通常只是表格中的标题视图,因此您应该可以请求表格视图向上滚动以显示搜索栏。

+0

这样的作品,但搜索栏仍然是默认可见,因为它已被指定为'tableView.tableHeaderView'。此外,它的笨拙,因为tableview必须一直滚动到顶部才能访问'UISearchBar'。我正在寻找一种方法来显示“UISearchbar”,直到搜索按钮被点击。现在,一个'UISearchDisplayController'接近我想要的,尽管它最初并没有隐藏'UISearchBar'。 – user1032657

3

这适用于我。希望能帮助到你。

在您的viewWillAppear中调用[self hideSearchBar](这会最初隐藏搜索栏)。

你的搜索按钮应具有以下作用:

- (IBAction)searchIconButtonClicked { 
    if (self.searchDisplayController.isActive || (self.tableView.contentOffset.y < 44)) { 
     if (self.searchDisplayController.isActive) { 
      self.searchDisplayController.searchBar.text = nil; 
      [self.searchDisplayController setActive:NO animated:YES]; 
      [tableView reloadData]; 
     } 
     [self hideSearchBar]; 
    } else { 
     [self.patientTableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES]; 
    } 
} 

- (void)hideSearchBar { 
    //NSLog(@"Hiding SearchBar");   
    [self.tableView setContentOffset:CGPointMake(0,44)]; 
} 
+0

感谢兄弟。像我想要的那样工作 – khalil