1

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

- (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 上的应用商店。他们是如何设法为桌子上的不同应用程序生成不同的图像的?他们是在使用桌子还是有更好的方法来做到这一点?

4

2 回答 2

1

嗯,也许是一个 switch 语句。或者您可以将幅度四舍五入,然后..

[NSString stringWithFormat:@"%d.0.png", newMagnitude];
于 2011-05-12T06:42:36.157 回答
0

floorf使用以下函数将幅度四舍五入<math.h>

然后使用MINandMAX宏来保护实际值不会超过 5 或低于 2。

int realMagnitude = (int) MAX(MIN(floorf(magnitude), 5.0f), 2.0f);
return [UIImage imageNamed:[NSString stringWithFormat:@"%d.0.png", realMagnitude]];

更新:我认为这就是您要查找的内容:在 中-tableView:cellForRowAtIndexPath:,使用提供NSIndexPath的获取相关图像:

cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", indexPath.row]];
于 2011-05-12T06:44:13.017 回答