如何在静态UITableViewCell中设置背景图像?

时间:2012-05-20 08:09:15

标签: iphone ios ipad

我尝试了以下代码,但单元格根本没有变化:

- (void)viewDidLoad
{
    [super viewDidLoad];

    //Set background image of cells
    UITableViewCell *cell;

    cell = [CalculatorTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
    cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Spots.png"]];

}

3 个答案:

答案 0 :(得分:0)

两件事。首先,应该在cellForRowAtIndexPath方法中创建单元格。其次,您应该制作背景视图,然后将其添加到单元格内容视图中。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   cell = [CalculatorTableView alloc] initWithStyle:UITableViewStyleDefault reuseIdentifier:nil]; //This wil obviously depend on your subclass
   UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Spots.png"]];
   [cell.contentView addSubview:backgroundView];
}

答案 1 :(得分:0)

cell.backgroundView = [ [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"Spots.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ]autorelease];  

这可能是更好的方法。

或者,你可以试试这个:

您可以尝试使用此代码来帮助您。

将此代码放在cellForRowAtIndexPath方法

   UIImageView *av = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 277, 58)];
    av.backgroundColor = [UIColor clearColor];
    av.opaque = NO;
    av.image = [UIImage imageNamed:@"Spots.png"];
    cell.backgroundView = av;

您将单元初始化代码放在viewDidLoad中吗?这是非常错误的,应该是:

   cellForRowAtIndexPath:

您可能想查看此链接:

TableView programming

答案 2 :(得分:0)

在调用viewWillAppear:之前,使用静态表视图创建的单元格不存在。将上面的代码移到该方法中(并确保首先调用super实现。