カスタム ヘッダー タイトルを含むテーブルを表示したいと考えています。はおよび データ ソース プロトコルを実装する にtable view
添付されますが、テーブルは別のテーブルビューの上に表示されるサブビューであるため、 のサブクラスではありません。controller class
tableview delegate
UIViewController
私のコードのいくつかのスニペット:テーブルビューはプログラムで作成されます:
_myListView = [[UITableView alloc] initWithFrame:tableFrame style:UITableViewStyleGrouped];
[_myListView setDataSource:self.myListController];
[_myListView setDelegate:self.myListController];
[_myListView setBackgroundColor:darkBackgroundColor];
ここで、myListController はクラスの強力なプロパティです。
セクションの行数:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
…
return count;
}
セクション数:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [someDelegate sectionCount];
}
カスタム ヘッダー ビューの場合:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView* headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, SectionHeaderHeight)];
UILabel* sectionHeaderTitle = [[UILabel alloc] initWithFrame:CGRectMake(20, 3, 300, 24)];
[headerView setBackgroundColor:[UIColor clearColor]];
sectionHeaderTitle.text = [self myTitleForHeaderInSection:section];
sectionHeaderTitle.textColor = [UIColor whiteColor];
sectionHeaderTitle.textAlignment = UITextAlignmentLeft;
[headerView addSubview:sectionHeaderTitle];
return headerView;
}
カスタム headerViewHeight の場合 (iOS5 以降で必要):
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if ( [self tableView:tableView numberOfRowsInSection:section] > 0) {
return SectionHeaderHeight;
} else {
return 0;
}
}
残念ながら、nil を返す場合と同様に、テーブルビューにはセクション ヘッダーが表示されません。ただし、コードが実際に UIView を返すことをブレークポイントで確認しました。
他のすべては正常に動作します。
私は何が欠けていますか?どうぞ、遠慮なく私を恥じさせてください。