我正在为UITableView
的节标题和表标题创建自定义视图。问题是剖面视图(绿色)出现在表头视图(红色)
表标题视图的代码是
self.headerImageView = [[UIView alloc] init];
self.headerImageView.backgroundColor = [UIColor redColor];
self.tableView.tableHeaderView = self.headerImageView;
我在这里设置了它的框架
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
self.headerImageView.frame = CGRectMake(0, 0, CGRectGetWidth(self.tableView.frame), 100);
}
节标题的代码
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor greenColor];
return view;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 40;
}
我做错了什么? 欢呼声
答案 0 :(得分:1)
只需将代码全部放入 - (void)viewDidLoad,就像这样:
- (void)viewDidLoad {
[super viewDidLoad];
self.headerImageView = [[UIView alloc] init];
_headerImageView.backgroundColor = [UIColor redColor];
_headerImageView.frame = CGRectMake(0, 0, CGRectGetWidth(self.tableView.frame), 100);
self.tableView.tableHeaderView = _headerImageView;
}
我发现 - (void)viewDidLayoutSubviews在滚动表时会被多次调用。也许这就是问题所在。