2014-01-22 83 views
-2

這是循環:我的for循環doesn't工作做好

我想這3幅影像(稱爲1.jpg, 2.jpg, 3.jpg)添加到該表有3行。但與>=視圖不會出現,並與==只有第一行有一個圖像。

for (int i = 0; i >= indexPath.row; i++) { 
     i++; 
     NSString *number = [NSString stringWithFormat:@"%d", i]; 
     NSString *format = @".jpg"; 
     NSString *end= [NSString stringWithFormat:@"%@%@", number, format]; 
     cell.imageView.image = [UIImage imageNamed:end]; 
    } 

我該怎麼辦?

回答

1

那麼你的代碼有很多錯誤,首先讓我們從循環的第一行開始。

i++將增加,這意味着你的步驟i是2,而不是1

其次你說要繼續循環,同時i是大於等於indexPath.row,所以如果indexPath.row是0這個循環將永遠不會結束。

第三你不需要那麼多的字符串,可以格式化它在一個去

for (int i = 0; i < indexPath.row; i++) { 
    NSString *imageName= [NSString stringWithFormat:@"%d.jpg", i+1]; 
    cell.imageView.image = [UIImage imageNamed:imageName]; 
} 

但現在你只需重寫同一圖像只得到最新的圖像顯示。 如果你想要第1行有1.jpg和第2行2.jpg那麼根本就不需要循環。您只需直接分配圖像:

NSString *imageName= [NSString stringWithFormat:@"%d.jpg", indexPath.row+1]; 
cell.imageView.image = [UIImage imageNamed:imageName]; 
+1

此外,比較總是假的:** i> = indexPath.row ** –

+0

@TamásZahola:不,這是第一次。 –

+0

@Scott無論如何,這是錯誤的。 –

3

假設你有你的圖片是這樣的:委託方法:

NSString *imageName= [NSString stringWithFormat:@"%d.jpg", indexpath.row]; 
cell.imageView.image = [UIImage imageNamed:imageName]; 

0.jpg 
1.jpg 
2.jpg 
... 

那麼你應該在的cellForRowAtIndexPath做到這一點沒有for循環,沒有追加。

+0

是的,mea culpa :) –