我的for循环不能很好地工作

时间:2014-01-22 14:57:52

标签: objective-c for-loop cell nsindexpath

这是:

的循环

我希望将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];
    }

我必须做什么?

2 个答案:

答案 0 :(得分:3)

假设你有这样的图像:

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

然后你应该在 cellForRowAtIndexPath:委托方法中执行此操作:

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

不是循环,没有追加。

答案 1 :(得分: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];