1

標準のUITableViewを備えたUIViewControllerと、検索デリゲートが追加された検索バーがあります。ビューのナビゲーションバーにセグメント化されたコントロールがあります。ユーザーがセグメント化されたコントロールを変更すると、searchBarを非表示にします。

私が使用しているコードは次のとおりです。

- (void)segChange {
    if ([segmentedControl selectedSegmentIndex] == 0) {
        [[[self searchDisplayController] searchBar] setHidden:YES];

        // This does not work:
        [[[self searchDisplayController] searchResultsTableView] setContentOffset:CGPointZero animated:NO]; 

    }
    else {
        [[[self searchDisplayController] searchBar] setHidden:NO];
    }


}

コードはsearchBarをうまく隠しますが、テーブルビューの上部に厄介な空白を残します....それを取り除く方法についてのアイデアはありますか?

ありがとう

4

2 に答える 2

6

このコードは問題を解決しました:

- (void)segChange {
    if ([segmentedControl selectedSegmentIndex] == 0) {
        [self.myTableView setTableHeaderView:nil];
    }
    else {
        [self.myTableView setTableHeaderView:[[self searchDisplayController] searchBar]];
    }
}
于 2010-11-11T09:38:27.990 に答える
1

セグメント化されたコントロールを非表示にするのではなく、フレームを次のように設定してみてくださいCGRectZero

于 2010-11-10T20:16:36.697 に答える