我正在使用UITableView中节标题的自定义标题视图。以下是一些dataSource方法:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
SBTableViewHeader *header = [[SBTableViewHeader alloc] init];
header.titleLabel.text = self.earnings;
header.subtitleLabel.text = @"You have earned $23 today.";
return header;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 90;
}
我知道我的标题视图应该是90分高,但我得到了90分我的标题视图加上另外90个空白点,其中包含一些单元格。这总共是180,用Photoshop测量。
帮助!
更多信息:SBTableViewHeader是一个UIView子类,使用的是.xib。没什么特别的。文件的所有者设置为SBTableViewHeader,其他所有内容似乎都正确连接。
答案 0 :(得分:1)
(来自评论:)
您必须使用initWithFrame
代替init
来创建具有正确尺寸的视图。
heightForHeaderInSection:
(类似地heightForRowAtIndexPath
)来计算标题和单元格位置,滚动指示符的大小等。
数据源(或委托)方法必须返回正确大小的单元格/视图,否则它们将与其他项目重叠。