この投稿を使用してヘッダーを作成しました:StoryBoardsのテーブルヘッダービュー
しかし、スクロール中にヘッダーを画面の上部に貼り付ける(修正する)ことができません。
どうすればそれを達成できますか?
viewForHeaderInSection
PSテーブルのスタイルは単純で、オーバーロードしてヘッダービューのアウトレットを返すのに疲れたとき、それはさらに悪化しました。
前もって感謝します!
この投稿を使用してヘッダーを作成しました:StoryBoardsのテーブルヘッダービュー
しかし、スクロール中にヘッダーを画面の上部に貼り付ける(修正する)ことができません。
どうすればそれを達成できますか?
viewForHeaderInSection
PSテーブルのスタイルは単純で、オーバーロードしてヘッダービューのアウトレットを返すのに疲れたとき、それはさらに悪化しました。
前もって感謝します!
これは、ヘッダービューをテーブルトップに固定すると思われるコードです(これはデフォルトの動作ではありません):
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGRect rect = self.tableHeaderView.frame;
rect.origin.y = MIN(0, self.tableView.contentOffset.y);
self.tableHeaderView.frame = rect;
}
別の方法は、最初のセクションにヘッダー ビューを表示することです。でサブビューを使用することはできませviewForHeaderInSection
ん。まだビュー階層にないビューをそこに戻す必要があります。この方法の利点は、セクション ヘッダー ビューがテーブルの上部に表示されるように設計されていることです。欠点は、フィーチャー内のセクションのヘッダーが必要になる場合があることです。これにより、ソリューションが壊れます。
私はこのように(少なくともiOS 6で)それを行うことができましたが、なぜこのことが機能するのかわかりません:)
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
if(self.headerManualView == nil) {
//allocate the view if it doesn't exist yet
headerManualView = [[UIView alloc] init];
//create the button
UITextField *txtField = [[UITextField alloc] initWithFrame:CGRectMake(10, 3, 250, 44)];
//the button should be as big as a table view cell
txtField.borderStyle = UITextBorderStyleRoundedRect;
//set action of the button
//[txtField addTarget:self action:@selector(removeAction:) forControlEvents:UIControlEventTouchUpInside];
//add the button to the view
[headerManualView addSubview:txtField];
}
//return the view for the footer
return headerManualView;
}
これを実現するには、ストーリーボードで UITableViewController の代わりに UIViewController を使用する方がよいと思います。ストーリーボードのビューの上部にヘッダーを配置し、ヘッダーの下に UITableView を配置するだけです。