UITableView第一部分由viewForHeaderInSection隐藏

时间:2013-04-12 18:54:50

标签: ios objective-c ios5 ios6

我有一个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的第一部分隐藏在图像后面。我需要在图像下方移动该部分。

Description

2 个答案:

答案 0 :(得分:2)

您使用该数据源方法设置的是表格视图的特定部分的标题,但它听起来像您想要的是设置表格视图本身的tableViewHeader 。将表格视图的tableViewHeader属性设置为标题视图,而不是将标题视图作为节标题返回。然后,您将获得标准的iOS标题与内容布局。

答案 1 :(得分:0)

您还需要实现tableView:heightForHeaderInSection:以返回图像视图的高度。