我有一个UITableView,它是一个分组表视图。我试图添加一个图像作为表视图的标题(仅适用于第一部分)。我遇到的问题是图像覆盖了tableview的第一部分。
以下是代码:
- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 80)];
NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.eventsforacausesf.com/uploads/8/7/3/0/8730216/3416277_orig.jpg"]];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, headerView.frame.size.width, headerView.frame.size.height)];
imageView.image = [UIImage imageWithData:imageData];
[headerView addSubview:imageView];
if (section == 0) {
return headerView;
}
return nil;
}
例如,在下图中,tableview的第一部分隐藏在图像后面。我需要在图像下方移动该部分。
答案 0 :(得分:2)
您使用该数据源方法设置的是表格视图的特定部分的标题,但它听起来像您想要的是设置表格视图本身的tableViewHeader
。将表格视图的tableViewHeader
属性设置为标题视图,而不是将标题视图作为节标题返回。然后,您将获得标准的iOS标题与内容布局。
答案 1 :(得分:0)
您还需要实现tableView:heightForHeaderInSection:
以返回图像视图的高度。