Программно добавить изображение в ячейку TableView - PullRequest
20 голосов
/ 24 августа 2011

У меня есть UITableView, который получает информацию с сервера и публикует данные в виде таблицы.Внутри каждой ячейки находится информация с сервера.

Для целей этого примера, скажем, информация, которую мы получаем от сервера, представляют собой числа: 1, 2, 3, 4.

Что я хочу сделать, это добавить изображение (программнопотому что есть операторы if и т. д.) слева от ячейки, а текст (1, 2 и т. д.) - рядом с ним.

По сути, я хочу, чтобы каждая ячейка выглядела следующим образом:

 _____________________________________
| (IMAGE) (TEXT)                      | --CELL 0
--------------------------------------
 _____________________________________
| (IMAGE) 2                           | --CELL 1
--------------------------------------

Пожалуйста, извините за мою грубую иллюстрацию.:)

Ответы [ 5 ]

20 голосов
/ 24 августа 2011

здесь вы идете:

cell.imageView.image = [UIImage imageNamed:@"image.png"];

Swift:

cell.imageView?.image = UIImage(named: "image.png")
8 голосов
/ 24 августа 2011

Вы можете добавить как изображение, так и текст к UITableViewCell в вашем подклассе UITableViewController следующим образом:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    [[cell imageView] setImage:anImage];
    [[cell textLabel] setText:[NSString stringWithFormat:@"%d",[indexPath row]];

     return cell;
}

В UITableViewCell есть несколько «встроенных» свойств, которыми вы можете воспользоваться, например imageView, textLabel и detailTextLabel. Для получения дополнительной информации ознакомьтесь с Руководством по программированию Table View .

5 голосов
/ 24 сентября 2015

Версия первого ответа Swift 2.0:

cell.imageView?.image = UIImage(named: "image.png")
3 голосов
/ 24 августа 2011

Объекты UITableViewCell имеют свойство imageView;Вы можете просто установить изображение этого изображения, и оно автоматически отобразит изображение в нужном месте с заголовком рядом с ним.

0 голосов
/ 25 октября 2013
// create a rectangle box for image view

UIImageView *iconImage = [[UIImageView alloc] init];
iconImage.frame = CGRectMake(12,4,53.5,53.5);

// Create a label for cells
UILabel *cellName = [[UILabel alloc] initWithFrame:CGRectMake(75,18,200,20)];
cellName.font = [self fontForBodyTextStyle];

NSString *cellNameStr = [NSString stringWithFormat:@"%@",self.tableCellNames[indexPath.row]];

// Select path row tab actions
switch (indexPath.row) {
    case 0:

        cellName.text = cellNameStr;
        iconImage.image = [UIImage imageNamed:@"condition.png"];
        [cell.contentView addSubview:iconImage];
        [cell.contentView addSubview:cellName];

        break;

    case 1:
       cellName.text = cellNameStr;
        iconImage.image = [UIImage imageNamed:@"videos.png"];
        [cell.contentView addSubview:iconImage];
        [cell.contentView addSubview:cellName];
        break;

    case 2:
        cellName.text = cellNameStr;
        iconImage.image = [UIImage imageNamed:@"provider.png"];
        [cell.contentView addSubview:iconImage];
        [cell.contentView addSubview:cellName];
        break;

    case 3:
        cellName.text = cellNameStr;
        iconImage.image = [UIImage imageNamed:@"info.png"];
        [cell.contentView addSubview:iconImage];
        [cell.contentView addSubview:cellName];
        break;

    default:
        NSAssert(NO, @"Unhandled value in cellForRowAtIndexPath");
        break;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...