Добавление динамического изображения в UITable View Cell - PullRequest
2 голосов
/ 23 апреля 2010

У меня есть таблица, в которую я хочу загрузить динамическое изображение с левой стороны. В таблице необходимо использовать оператор IF, чтобы выбрать подходящее изображение из папки «Ресурсы», и она должна основываться на [типах собак].

[собака типов] извлекается из RSS-канала, поэтому изображение в ячейке таблицы должно соответствовать тегу [собаки типов] каждой ячейки.

Обновление: см. Код ниже для того, что я собираюсь сделать (только ниже это для землетрясений, для меня это фотографии собак).

Я подозреваю, что мне нужно использовать - (UIImage *) imageForTypes: (NSString *) types {чтобы сделать такую ​​вещь.

Спасибо.

Обновленный код: Это образец Apple Earthquake, но он делает именно то, что мне нужно. Он сопоставляет изображения с серьезностью (2.0, 3.0, 4.0, 5.0 и т. Д.) Каждого землетрясения с магнитудой.

- (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;
}

и ниже - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath

magnitudeImage.image = [self imageForMagnitude:earthquake.magnitude];

Ответы [ 3 ]

1 голос
/ 23 апреля 2010

Изображение установлено в

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Для краткости вы можете использовать этот метод в любом случае, но вы просто устанавливаете изображение так же, как статическое.

Редактировать: То есть; в этом конкретном методе:

cell.imageView.image = [UIImage imageNamed:@"Dachshund"]; // Dachshund.jpg exists in the resources directory, of course.

Повторное редактирование: Чтобы быть еще более точным:

// Assuming that a) [dog types] is "<name of dog type>" and;
// b) an image named "<name of dog type>.file_extension" exists in the resources of the project:
cell.image = [UIImage imageNamed:[[dog types] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
// No mapping of the string to image name is necessary if you know the
// set of strings that will be used for the feed.
0 голосов
/ 23 апреля 2010

Я никогда не использовал это, но я думаю, что вы можете использовать свойство imageView ячейки таблицы ( UITableViewCell ) для добавления изображений:

@property(nonatomic, readonly, retain) UIImageView *imageView

Это указатель на UIImageView , который создается (выделяется) самой ячейкой (поэтому она доступна только для чтения). Как правило, мы можем загрузить изображение в UIImageView следующим образом с помощью метода initWithImage:

UIImageView *myImgView = [[UIImageView alloc] initWithImage: 
                         [UIImage imageWithContentsOfFile: @"image1.png"]];

Итак, в нашем коде мы делаем это так:

[[cell imageView] initWithImage: 
                         [UIImage imageWithContentsOfFile: @"image1.png"]];

(непроверенный код)

см. Также: UIImage

0 голосов
/ 23 апреля 2010

Ваш вопрос, как сделать так, чтобы он отображался в ячейке таблицы или как прочитать его из папки ресурсов?

Чтобы он появился в ячейке: cell.imageView.image = imageOfDogLoadedFromResourceFolder;

Если вопрос заключается в том, как загрузить из папки ресурсов, потребуется больше информации о том, где именно в файловой системе находится ваша папка ресурсов и формат файла изображения.

Приветствие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...