2012-05-04 5 views
1

以下のコードを使用して、1つのセル内容ビューに画像の数を追加します。forループを使用して画像を動的に追加する-objective c

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

どれ提案:

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

どのように私のコードを見てのconscise何かを作るためにstringWithFormatでループのために使用するには?

+0

はすべて20の画像ビューが同じセルにありますか? – sandy

+0

はい20個のimageview(非常に小さい)が同じセルにあります。私はUITableViewCellをサブクラス化し、ビューコントローラでカスタムセルを作成しました。 – Alok

+1

私は答えplzチェックを入れて、あなたに必要な明確化があれば教えてください – sandy

答えて

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]]]; 
    } 
+0

両方の方法で動作していますが、2番目の解決策はちょうどgawjusです – Alok

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]]; 
    } 
} 

私はより良い説明のための完璧 For More Examplesこのコードの動作を考えます。

1

あなたがこれを使用する必要があり、この

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

のthis.Insteadように使用することはできません間違ったlogic.Itを使用している: -

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; 
} 

てみthis.Hopeそれはつもり助けあなたに感謝: )

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]]; 
} 

なら、私に知らせてあなたが必要とする明確化

+0

help.iを評価しています.imageプロパティにアクセスできません:[imageArr objectAtindex:imageCounter] .image.However上記のソリューションのように設定されたイメージでは: – Alok

+1

それはsetimageで動作していますか?その後も大丈夫 – sandy

関連する問題