我知道如何自定义tableViewCell。
我见过很多应用程序自定义tableView Cell。
同样,我想自定义TableView Section Header
“假设 - 部分名称应采用不同的字体,它有不同的背景图像等。”
有可能吗?
我应该在哪种方法中实现代码?
答案 0 :(得分:60)
而不是使用普通方法
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
你想实现这个:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
如您所见,第二个返回UIView而不是文本字符串。因此,您可以自定义自己的视图(使用标签等)并将其返回。
以下是一个如何执行此操作的示例(将在上述方法中实现):
// create the parent view that will hold header Label
UIView* customView = [[[UIView alloc] initWithFrame:CGRectMake(10,0,300,60)] autorelease];
// create image object
UIImage *myImage = [UIImage imageNamed:@"someimage.png"];;
// create the label objects
UILabel *headerLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.font = [UIFont boldSystemFontOfSize:18];
headerLabel.frame = CGRectMake(70,18,200,20);
headerLabel.text = @"Some Text";
headerLabel.textColor = [UIColor redColor];
UILabel *detailLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
detailLabel.backgroundColor = [UIColor clearColor];
detailLabel.textColor = [UIColor darkGrayColor];
detailLabel.text = @"Some detail text";
detailLabel.font = [UIFont systemFontOfSize:12];
detailLabel.frame = CGRectMake(70,33,230,25);
// create the imageView with the image in it
UIImageView *imageView = [[[UIImageView alloc] initWithImage:myImage] autorelease];
imageView.frame = CGRectMake(10,10,50,50);
[customView addSubview:imageView];
[customView addSubview:headerLabel];
[customView addSubview:detailLabel];
return customView;
希望有所帮助