如何隐藏UISearchDisplayController搜索栏

时间:2011-11-01 01:09:44

标签: objective-c uisearchbar uisearchbardisplaycontrol

我正在使用UISearchDisplayController。

当用户在表格中选择一行时,我想隐藏搜索栏。

这是我的尝试:

- (void)displaySearchBar:(BOOL)show {
    [UIView animateWithDuration:0.15
                          delay:0
                        options:UIViewAnimationOptionBeginFromCurrentState
                     animations:^{

         [m_searchDisplayController.searchBar setHidden:!show];
         [m_categoriesView.categoriesTable setContentInset:show ?
         UIEdgeInsetsMake(0,0,0,0) : UIEdgeInsetsMake(-CGRectGetHeight(m_searchDisplayController.searchBar.frame),0,0,0)];

         if( show ) {
             [m_categoriesView.categoriesTable setContentOffset:CGPointZero];
         }

    }
    completion:NULL];
}

除非用户旋转设备,否则一切正常。 搜索栏被隐藏但我在桌子顶部有一个黑色空间。

有人有线索吗?

致以最诚挚的问候,

马丁

2 个答案:

答案 0 :(得分:0)

我猜你的tableview没有正确调整大小,所以当删除搜索栏时,你会看到父视图的背景。

答案 1 :(得分:0)

为什么不使用

[self.searchDisplayController setActive:NO animated:YES];

而不是所有代码。这也将删除键盘