загрузка изображения в режиме просмотра в виде таблицы - PullRequest
1 голос
/ 12 мая 2011

Есть ли лучший способ динамически загружать изображения в ячейку таблицы для разных строк, кроме использования операторов if?Что делать, если у меня много клеток.Значит ли это, что мне придется написать много утверждений 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;

}

edit: что, если речь не идет о величине?например, список продуктов или как магазин приложений на iPhone.как им удалось создать разные изображения для разных приложений на столе?они используют таблицу или есть лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Хм, может быть, заявление о смене.Или вы можете просто округлить величину и затем ..

[NSString stringWithFormat:@"%d.0.png", newMagnitude];
0 голосов
/ 12 мая 2011

Снизьте величину, используя функцию 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]];
...