2013-02-06 43 views
0

我在UITableView中使用自定义标题视图的部分标题。这里有几个数据源的方法:自定义UITableView部分标题,奇怪的行为

- (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分我的头鉴于PLUS的另一个空间90个空点,这覆盖一些细胞。这是总计180,在Photoshop中测量它。

帮助!

更多信息:SBTableViewHeader是一个UIView子类,使用的是.xib。没有什么特别的。文件的所有者设置为SBTableViewHeader,并且其他所有内容似乎都已正确连接。

+0

检查xib文件中视图的高度。它也应该是90分。 – Levi

+1

您是否检查过[[SBTableViewHeader alloc] init]'返回高度= 90的视图? –

+0

我检查了它,它是90. –

回答

1

(从评论:)

你必须使用initWithFrame而不是init创建一个具有正确大小的视图。

heightForHeaderInSection:(以及类似地heightForRowAtIndexPath)用于由表视图仅计算头部和单元位置,滚动指示器等

数据源(或代表)方法的尺寸必须返回细胞/观点的正确大小,否则它们会与其他项目重叠。

相关问题