0

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];
}

ユーザーがデバイスを回転させる場合を除いて、すべて正常に機能します。検索バーは非表示になっていますが、テーブルの上に黒いスペースがあります。

誰かが手がかりを持っていますか?

よろしくお願いします、

マーティン

4

2 に答える 2

0

テーブルビューのサイズが適切に変更されていないため、検索バーを削除すると、親ビューの背景が何であれ表示されます。

于 2011-11-01T01:23:21.543 に答える
0

なぜ使わないのですか

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

そのすべてのコードの代わりに。これにより、キーボードも削除されます

于 2012-05-20T15:17:56.523 に答える