Ios 自定义UITableView节标题,怪异行为
我在UITableView中为节标题使用自定义标题视图。以下是两种数据源方法:Ios 自定义UITableView节标题,怪异行为,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我在UITableView中为节标题使用自定义标题视图。以下是两种数据源方法: - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { SBTableViewHeader *header = [[SBTableViewHeader alloc] init]; header.titleLabel.text = self.earnings; heade
- (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个空白点,这覆盖了一些单元格。用Photoshop测得总共180
救命啊
更多信息:SBTableViewHeader是UIView子类,正在使用.xib。没什么特别的。文件的所有者设置为SBTableViewHeader,其他所有内容似乎都已正确连接。(来自注释:)
必须使用initWithFrame
而不是init
来创建具有正确大小的视图
heightForHeaderInSection:
(类似地,heightForRowAtIndexPath
)仅由表视图用于计算标题和单元格位置、滚动指示器的大小等
数据源(或委托)方法必须返回大小正确的单元格/视图,否则它们将与其他项目重叠。检查xib文件中视图的高度。它也应该是90分。您是否检查过
[[SBTableViewHeader alloc]init]
是否返回高度为90的视图?我检查过了,它是90。@MartinR这就是问题所在!它返回了一个框架和边界高度为0的视图,因此解决方案是使用initWithFrame:而不是init:。。。请随意发布答案,这样我就可以接受。@NikolayDyankov:。。。。完成。