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

静的テーブル ビューを使用して作成されたセルは、呼び出されるまで存在しませんviewWillAppear:。上記のコードをそのメソッドに移動します (そして、super最初に実装を呼び出すようにしてください。

于 2012-05-20T12:07:54.113 に答える
0

2つのこと。まず、 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:

このリンクをチェックしてみてください:

TableView プログラミング

于 2012-05-20T08:13:57.677 に答える