2012-05-02 16 views
1

UISearchBarをuitableviewヘッダービューに配置し、viewcontroller viewdidLoadメソッドでヘッダービューの高さを0に設定して検索バーを非表示にし、ボタンがタッチされると検索バーを表示したかった。 uisearchbarを表示しますが、検索バーはtableviewの最初の行をオーバーレイします。オーバーレイを避ける方法はありますか?UITableViewヘッダービューのサイズ変更

答えて

3

headerviewのclipsToBoundsプロパティをYESに設定すると、そのようになります。

+0

このプロパティを設定する必要はありませんでした。私は元のサイズを復元する前にそれを設定します – taffarel

+0

高さが0のときはすでに設定されています。これは、検索バーが適合しないため、下のテーブルビューと重なることになります。通常、ヘッダービューの作成直後に設定しますが、高さを0にする直前に設定することもできます。 – Stuart

+0

いいえ、それはうまくいかず、多分私は何か間違っていますか?ここに私のコードです。 viewDidLoadメソッド内 CGRect headerframe = self.tableView.tableHeaderView.frame; [self.searchBar setHidden:YES]; self.tableView.tableHeaderView.clipsToBounds = YES; self.tableView.tableHeaderView.frame = CGRectMake(headerframe.origin.x、headerframe.origin.y、headerframe.size.width、0); およびタッチハンドラ [self.searchBar setHidden:NO]; CGRect headerframe = self.tableView.tableHeaderView.frame; self.tableView.tableHeaderView.frame = CGRectMake(headerframe.origin.x、headerframe.origin.y、headerframe.size.width、44); – taffarel

2

clipを変更すると、headerViewでYESに設定されます。

関連する問題