1

以下のコードを使用して、単一のセルコンテンツビューに多数の画像を追加しています。

    cell.imageView1.image = [UIImage imageNamed:@"testImg1"];
            cell.imageView2.image = [UIImage imageNamed:@"testImg2"];
            cell.imageView3.image = [UIImage imageNamed:@"testImg3"];
            cell.imageView4.image = [UIImage imageNamed:@"testImg4"];
            cell.imageView5.image = [UIImage imageNamed:@"testImg5"];  
.............................  
............................  
cell.imageView20.image = [UIImage imageNamed:@"testImg20"];  

stringWithFormatでforループを使用して、コードを次のように簡潔に見せるための方法:

for(imageCounter = 1; imageCounter <21, imageCounter++)  
{  
cell.imageView(imageCounter).image = [UIImage imageNamed:@"testImg(imageCounter)"];  
}  

なにか提案を?

4

4 に答える 4

2

ループ内のさまざまな画像ビューの参照に到達するには、それらを配列で出力するか、タグを付ける必要があります。

  NSArray *cellImageViews;
  for(int imageCounter = 1; imageCounter < 21; imageCounter++)
  {
    [[cellImageViews objectAtIndex:imageCounter-1] setImage:[UIImage imageNamed:[NSString stringWithFormat:@"testImg%d", imageCounter]]];
  }

また

  for(int imageCounter = 1; imageCounter <21; imageCounter++)
  {
    [((UIImageView *)[cell viewWithTag:imageCounter]) setImage:[UIImage imageNamed:[NSString stringWithFormat:@"testImg%d", imageCounter]]];
  }
于 2012-05-04T10:34:55.937 に答える
1
UIImageView *img[20];//ur array of images

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

for (int i=0; i<20; i++) {

        //set frame  every time as ur requirement

        img[i].image = [UIImage imageNamed:[NSString stringWithFormat:@"testImg%d",i+1]];
        [cell.contentView addSubview:img[i]];
    }
}

私はこのコードが完璧に機能すると思い ます

于 2012-05-04T10:23:49.450 に答える
1

間違ったロジックを使用しています。このように使用することはできません。これの代わりに

for(imageCounter = 1; imageCounter <21, imageCounter++)
{
 cell.imageView(imageCounter).image = [UIImage imageNamed:@"testImg%d,(imageCounter)"];
}

これを使用する必要があります:-

yourImageView = [[UIImageView alloc] initWithFrame:CGRectMake(x, y, width, height)];

for(imageCounter = 1; imageCounter <21, imageCounter++)
{
 [yourImageView setImage:[UIImage imageNamed:@"testImg%d",imageCounter]];
 cell.imageView = yourImageView;
}

これを試してみてください。ありがとうございます:)

于 2012-05-04T10:26:36.360 に答える
1

こんにちは、最初にすべての画像を cellForRowAtIndexPath メソッドの配列に入れる必要があります

NSMutableArray *imageArr=[[NSMutableArray alloc]initWithObject:cell.imageView1,cell.imageView2.....];

次に、次の操作を行います。

for(imageCounter = 1; imageCounter <21, imageCounter++) {



[imageArr objectAtindex:imageCounter].image = [UIImage imageNamed:[NSString stringwithformat:@"testImg%d", imageCounter]];
}

説明が必要な場合はお知らせください

于 2012-05-04T10:39:19.947 に答える