0

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

- (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"]];

}
4

3 回答 3

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];
}
于 2012-05-20T08:13:13.420 回答
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:

您可能想查看此链接:

表视图编程

于 2012-05-20T08:13:57.677 回答
0

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

于 2012-05-20T12:07:54.113 回答