结束搜索时,在UINavigationBar下隐藏UISearchBar

时间:2014-01-10 12:01:55

标签: ios objective-c uitableview uisearchbar

除非按下右侧的搜索按钮,否则我不希望用户看到UISearchBar

enter image description here

我切换UISearchBar没问题。我使用以下代码执行此操作:

- (void)viewDidLoad{

    [super viewDidLoad];
    // Hide searchBar
    [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
}

- (IBAction)toggleSearchbar:(id)sender{
    NSTimeInterval delay;
    if(self.tableView.contentOffset.y > 1000){
        delay = 0.4;
    } else{
        delay = 0.1;
    }
    [self performSelector:@selector(activateSearch) withObject:nil afterDelay:delay];
}

- (void)activateSearch{
    [self.tableView scrollRectToVisible:CGRectMake(0.0, 0.0, 1.0, 1.0) animated:NO];
    [self.searchDisplayController.searchBar becomeFirstResponder];
}

向上推UINavigationBar并显示UISearchBar。我的问题是结束搜索。然后我想要反转效果。 UINavigationBar应从顶部向下,再次覆盖UISearchBar。现在UINavigationBar从顶部向下移动并向下推UISearchBar。我希望UISearchBar保持在最顶层,以便UINavigationBar在下降时覆盖它。

1 个答案:

答案 0 :(得分:0)

如果您使用UISearchDisplayController,则可以覆盖searchDisplayControllerDidEndSearch:的{​​{1}}方法。或者,您可以覆盖UISearchDisplayDelegate类的searchBarSearchButtonClicked:方法。