这是我第一次尝试在iOS中使用TableView并遇到问题。
我有一个只有2个部分的tableview,每个部分有两行。 我有一种情况,我需要在我的tableview的第一部分上面添加一个图像(比如在TableView顶部添加一个标志),我试图为第一部分创建/添加headerView,并将我的图像嵌入它,但问题是图像不会显示该部分的标题字符串。你觉得我需要创造吗?添加(addsubview)另一个字符串作为具有UILable的tile并将其附加到headerView或是否有任何其他方法来实现此目的? 问题依然存在,只要我显示该部分的headerView,一旦我删除它,将出现部分标题。
目前我这样做:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (section == 0)
return headerView;
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return headerView.frame.size.height + self.rowHeight+28.0; //
return 30.0;//for other title header section
}
和我的headerView分配如下:
CGRect headerViewRect = CGRectMake(0.0, 10.0, frame.size.width -50 , self.rowHeight+50.0);
headerView = [[UIView alloc] initWithFrame:headerViewRect];
headerView.backgroundColor = [UIColor clearColor];
UIImageView *titleImage = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MyTitlePicture.png"]] autorelease];
CGRect imageViewRect = CGRectMake(0.0, 0.0, frame.size.width -100 , self.rowHeight+28.0);
titleImage.frame = imageViewRect;
titleImage.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
[headerView addSubview:titleImage];
TIA, 卡姆兰
答案 0 :(得分:1)
tableView方法(viewForHeaderInSection)应返回headerView(UIVIew *)。 该代码将返回您的部分的标题视图。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (section == 0){
CGRect headerViewRect = CGRectMake(0.0,0.0,320,40);
UIView* headerView = [[UIView alloc] initWithFrame:headerViewRect];
headerView.backgroundColor = [UIColor clearColor];
UIImageView *titleImage = [[[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"MyTitlePicture.png"]] autorelease];
CGRect imageViewRect = CGRectMake(0.0, 0.0, 320 , 40);
titleImage.frame = imageViewRect;
titleImage.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
[headerView addSubview:titleImage];
//Then you can add a UILabel to your headerView
return headerView;
}
return nil;
}
答案 1 :(得分:0)
您正在替换默认的标题视图,而不是添加它。您需要对UILabel进行编程,并将其作为子视图添加到标题视图中。