在iOS中切换搜索栏

时间:2011-11-06 19:23:56

标签: objective-c ios cocoa-touch animation searchbar

我有一个TableView以及底部的搜索按钮。我希望搜索按钮能够让SearchBar在顶部弹出并成为焦点。否则,不应显示SearchBar

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

感谢。

2 个答案:

答案 0 :(得分: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)];
}

答案 1 :(得分:1)

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