除了使用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上的应用商店。他们是如何设法为桌面上的不同应用生成不同的图像?他们使用桌子还是有更好的方法来做这件事?
答案 0 :(得分:1)
嗯,也许是一个开关声明。或者你可以将幅度调整为然后然后..
[NSString stringWithFormat:@"%d.0.png", newMagnitude];
答案 1 :(得分:0)
使用floorf
<math.h>
函数向下舍入幅度
然后使用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:cellForRowAtIndexPath:
中,使用提供的NSIndexPath
来获取相关图片:
cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", indexPath.row]];