Objective c 动态加载图像到tableviewcell中

Objective c 动态加载图像到tableviewcell中,objective-c,ios,uitableview,didselectrowatindexpath,Objective C,Ios,Uitableview,Didselectrowatindexpath,除了使用if语句外,是否有更好的方法将不同行的图像动态加载到tableviewcell中?如果我有很多细胞呢。这是否意味着我必须写很多if语句?还有一种方法可以从核心数据中检索图像并将其用作tableview单元格的图像吗?提前谢谢 - (UIImage *)imageForMagnitude:(CGFloat)magnitude { if (magnitude >= 5.0) { return [UIImage imageNamed:@"5.0.png"]; } if (mag

除了使用if语句外,是否有更好的方法将不同行的图像动态加载到tableviewcell中?如果我有很多细胞呢。这是否意味着我必须写很多if语句?还有一种方法可以从核心数据中检索图像并将其用作tableview单元格的图像吗?提前谢谢

- (UIImage *)imageForMagnitude:(CGFloat)magnitude { 
if (magnitude >= 5.0) {
    return [UIImage imageNamed:@"5.0.png"];
}
if (magnitude >= 4.0) {
    return [UIImage imageNamed:@"4.0.png"];
}
if (magnitude >= 3.0) {
    return [UIImage imageNamed:@"3.0.png"];
}
if (magnitude >= 2.0) {
    return [UIImage imageNamed:@"2.0.png"];
}
return nil;
}


编辑:如果不是关于数量呢?例如,iPhone上的产品列表或类似应用商店。他们是如何为桌面上的不同应用程序生成不同的图像的?他们是在使用表还是有更好的方法来实现这一点?

Hmm可能是一个switch语句。或者你可以把这个量四舍五入然后

[NSString stringWithFormat:@"%d.0.png", newMagnitude];

嗯,也许是一个切换语句。或者你可以把这个量四舍五入然后

[NSString stringWithFormat:@"%d.0.png", newMagnitude];

使用

然后使用
MIN
MAX
宏保护实际值不超过5或低于2

int realMagnitude = (int) MAX(MIN(floorf(magnitude), 5.0f), 2.0f);
return [UIImage imageNamed:[NSString stringWithFormat:@"%d.0.png", realMagnitude]];
更新:我想这就是您想要的:在
-tableView:cellforrowatinexpath:
中,使用提供的
nsindepath
获取相关图像:

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

使用

然后使用
MIN
MAX
宏保护实际值不超过5或低于2

int realMagnitude = (int) MAX(MIN(floorf(magnitude), 5.0f), 2.0f);
return [UIImage imageNamed:[NSString stringWithFormat:@"%d.0.png", realMagnitude]];
更新:我想这就是您想要的:在
-tableView:cellforrowatinexpath:
中,使用提供的
nsindepath
获取相关图像:

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

每个UITableViewCell都有自己的大小吗?如果否,则不需要为每个单元格使用不同的If语句。另外,在哪里调用该函数?为什么要使用核心数据将图像存储为水滴?我认为UIImage正在进行缓存,所以您可能想利用这一点。每个UITableViewCell都有自己的大小吗?如果否,则不需要为每个单元格使用不同的If语句。另外,在哪里调用该函数?为什么要使用核心数据将图像存储为水滴?我认为UIImage正在进行缓存,所以您可能希望利用这一点,如果它不是量级呢?像一个有不同图片的产品列表吗?@Hong-Yi:我不明白。大小码就是一个例子,说明了如何在UITableViewCell上有不同的图片。有没有一种更简单的方法可以动态地做到这一点?像UIImage ImageName:“%@.jpg”,indexath.row是什么代码?我所说的不起作用,因为争论太多了。所以我想也许有更好的办法。谢谢你帮了我。@Hong-Yi:哪里有太多的争论?我不明白.cell.imageView.image=[UIImage ImageName:@“%@.jpg”,indexath.row]。我一直有太多的争论,期望1有2个。我想做的是把这些图片按升序命名,这样它就可以显示所有的图片了。如果不是大小呢?像一个有不同图片的产品列表吗?@Hong-Yi:我不明白。大小码就是一个例子,说明了如何在UITableViewCell上有不同的图片。有没有一种更简单的方法可以动态地做到这一点?像UIImage ImageName:“%@.jpg”,indexath.row是什么代码?我所说的不起作用,因为争论太多了。所以我想也许有更好的办法。谢谢你帮了我。@Hong-Yi:哪里有太多的争论?我不明白.cell.imageView.image=[UIImage ImageName:@“%@.jpg”,indexath.row]。我一直有太多的争论,期望1有2个。我想做的是把这些图片按升序命名,这样它就能显示所有的图片。