除了使用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上的应用商店。他们如何为桌上的不同应用生成不同的图像?他们使用的是表格还是有更好的方法呢?
最佳答案
使用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]];