1

カスタム背景画像を UITableViewCell に表示するために willDisplayCell デリゲート メソッドを使用しました。

- (void)tableView:(UITableView *)tableView 
           willDisplayCell:(UITableViewCell *)cell 
           forRowAtIndexPath:(NSIndexPath *)indexPath {

    static UIImage* bgImage = nil;
    if (bgImage == nil) {
        bgImage = [UIImage imageNamed:@"myImage.png"];
    }
    cell.backgroundView = [[UIImageView alloc] initWithImage:bgImage];
}

シミュレーターでアプリを実行すると、描画されているセルの背景だけが変更されます。すべてのセルの背景を変更する方法はありますか?

4

2 に答える 2

3

私はこのコードを試しました。うまくいきました。このコードを試すことができます。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"Cell"] autorelease];



        UIImageView *cellBackView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 100)];
        cellBackView.backgroundColor=[UIColor clearColor];


            cellBackView.image = [UIImage imageNamed:@"list.png"];



        cell.backgroundView = cellBackView;
        cell.selectionStyle=UITableViewCellSelectionStyleNone;




    return cell;



}
于 2013-01-26T11:19:11.613 に答える
0

cellForRowAtIndexPathセルを作成するメソッドでbackgroundView プロパティを設定する必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   static NSString *CellIdentifier = @"Cell";

   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

   if (!cell)
   {
       cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
   }

   cell.backgroundView = [[UIImageView alloc] initWithImage:...];

   return cell;
}
于 2013-01-26T11:00:46.120 に答える