2013-04-12 93 views
1

我有一個UITableView這是一個分組表視圖。我試圖添加一個圖像作爲表視圖的標題(僅適用於第一部分)。我遇到的問題是圖像覆蓋了tableview的第一部分。UITableView第一部分隱藏viewForHeaderInSection

下面的代碼:

- (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

使用該數據源方法設置的內容是表視圖的特定部分的標題,但在我看來,您想要的是設置表視圖本身的tableViewHeader。將您的表視圖的tableViewHeader屬性設置爲您的標題視圖,而不是將標題視圖作爲節標題返回。然後你會得到標準的iOS頭與內容佈局。

0

您還需要實現tableView:heightForHeaderInSection:返回圖像視圖的高度。

+0

工作。我現在注意到的另一個問題是,當我實現'tableView:viewForHeaderInSection'時,由於某種原因,該部分的'tableView:titleForHeaderInSection'不會顯示 –

+0

如果返回視圖!= nil,則不會調用titleForHeader ...。但是你可以在viewForHeader裏面調用它並在那裏使用字符串。 – MacMark