自定义UITableView节头,奇怪的行为

时间:2013-02-06 17:53:16

标签: ios objective-c uitableview

我正在使用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,其他所有内容似乎都正确连接。

1 个答案:

答案 0 :(得分:1)

(来自评论:)

您必须使用initWithFrame代替init来创建具有正确尺寸的视图。

表视图仅使用

heightForHeaderInSection:(类似地heightForRowAtIndexPath)来计算标题和单元格位置,滚动指示符的大小等。

数据源(或委托)方法必须返回正确大小的单元格/视图,否则它们将与其他项目重叠。