3

我在网上和 stackoverflow 上搜索过,但找不到一个好的答案。我读过关于

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section`

但那里没有什么可以帮助我。

最接近标题的图像背景的是:

headerView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"myBackground.png"]];

但它将图片显示为无法控制其大小的图案。

4

4 回答 4

9

如果要将图像设置为节标题,请使用:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{

    UIImage *myImage = [UIImage imageNamed:@"loginHeader.png"];
    UIImageView *imageView = [[[UIImageView alloc] initWithImage:myImage] autorelease];
    imageView.frame = CGRectMake(10,10,300,100);

    return imageView;

}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 100;
}
于 2012-12-21T18:04:50.007 回答
2

您可以将背景颜色设置为带有图像的图案:

headerView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage.png"]
于 2012-12-21T18:04:10.100 回答
0

你当然可以。在该方法中-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section,您需要简单地UIImageView用图像实例化 a,为 imageView 对象设置框架并返回 imageView 对象。

于 2012-12-21T18:05:14.867 回答
0
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

    UIView* headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100)];

    headerView.backgroundColor = [UIColor colorWithWhite:0.5f alpha:1.0f];
    headerView.layer.borderColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
    headerView.layer.borderWidth = 1.0;

    UILabel* headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(5,headerView.frame.size.height-40, tableView.frame.size.width - 5, 30)];

    headerLabel.backgroundColor = [UIColor clearColor];
    headerLabel.textColor = [UIColor whiteColor];
    headerLabel.font = [UIFont boldSystemFontOfSize:22.0];
    headerLabel.text = @"yourText";
    headerLabel.textAlignment = NSTextAlignmentLeft;

    UIImageView *headerImage = [[UIImageView alloc]initWithFrame:headerView.frame];


    headerImage.image = [UIImage imageNamed:[NSString stringWithFormat:@"image.jpg"]];
    headerImage.contentMode = UIViewContentModeScaleAspectFill;
    [headerImage setClipsToBounds:YES];

    [headerView addSubview:headerImage];
    [headerView addSubview:headerLabel];

return headerView;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 100;
}
于 2016-05-02T10:37:23.543 回答