Можете ли вы отобразить маленькое изображение в ячейке detailTextLabel?

Поэтому мне было интересно, можно ли отобразить небольшое изображение в DetailTextLabel ячейки? (Я получаю изображение из URL-адреса) Я попробовал это с помощью:

NSString *thumbs = [NSString stringWithFormat:@"%@", TableText3];
cell.detailTextLabel.text = thumbs;

Что по понятным причинам не работает. Я также пробовал с:

UIImage *thumbs = [UIImage imageWithData:[NSData dataWithContentsOfURL:
                                          [NSURL URLWithString:TableText3]]];
cell.detailTextLabel.text = thumbs;

Что также (очевидно) не работает, потому что я передаю изображение строковому параметру.

Удивительно, но я ничего не нашел в WWW. (параметры поиска были: "изображение в деталяхTextLabel" или картинка или просто текстовая метка и изображение и различные вариации)


person Blade    schedule 05.03.2012    source источник


Ответы (3)


Вместо того, чтобы помещать изображение в свойство imageView, вы можете создать UIImageView и поместить его в свойство accessorView:

UIImage     * thumbs;
UIImageView * thumbsView;
CGFloat       width;

thumbs             = [UIImage imageWithData:[NSData dataWithContentsOfURL:
                              [NSURL URLWithString:TableText3]]];
thumbsView         = [[[UIImageView alloc] initWithImage:thumbs] autorelease];
width              = (cell.frame.size.height * thumbs.size.width) / thumbs.size.height;
thumbsView.frame   = CGRectMake(0, 0, width, cell.frame.size.height);
cell.accessoryView = thumbsView;

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

person David M. Syzdek    schedule 05.03.2012

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

cell.imageView = [[UIImageView alloc] initWithImage: thumbs];

https://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewCell_Class/Reference/Reference.html

person Letrstotheprez    schedule 05.03.2012
comment
Ну да, но тогда он отображается слева, я надеялся, что смогу отобразить его в detailTextLabel. - person Blade; 06.03.2012
comment
Наверное, но я надеялся на лучшее решение. Спасибо хоть. - person Blade; 06.03.2012
comment
Вы всегда можете создать свой собственный UIImageView и добавить его в ячейку в качестве подвида. Однако вы не сможете установить изображение в UILabel. - person Letrstotheprez; 06.03.2012

Лучший подход — не полагаться на встроенные типы UITableViewCell, а создать собственную рамку ячейки и добавить все метки, представления и изображения в нужное место внутри ячейки. Затем вы можете вернуть ячейку для вашего табличного представления.

person greenhorn    schedule 05.03.2012