Как вписать UIImage
в ячейку UITableView
, UITableViewCell (?).
У вас addSubview
до cell
или есть способ изменить размер cell.image
или UIImage
, прежде чем он будет присвоен cell.image
?
Я хочу оставить размер ячейки по умолчанию (каким бы он ни был, когда вы начинаете с нулевого прямоугольника) и хотел бы добавить значок, как изображения, к каждой записи. Изображения немного больше, чем размер ячейки (размер строки таблицы).
Я думаю, что код выглядит так (сверху моей головы):
UIImage * image = [[UIImage alloc] imageWithName:@"bart.jpg"];
cell = ... dequeue cell in UITableView data source (UITableViewController ...)
cell.text = @"bart";
cell.image = image;
Что мне нужно сделать, чтобы изменить размер изображения в соответствии с размером ячейки?
Я видел что-то вроде:
UIImageView * iview = [[UIImageView alloc] initWithImage:image];
iview.frame = CGRectMake(...); // or something similar
[cell.contentView addSubview:iview]
Выше будет добавлено изображение в ячейку, и я могу рассчитать размер, чтобы соответствовать ему, однако:
- Я не уверен, что есть лучше
Кстати, не слишком ли много накладных расходов, чтобы
добавьте
UIImageView
просто чтобы изменить размер
cell.image
?
- Теперь мой ярлык (
cell.text
) должен быть
переместился, как это скрыто изображением,
Я видел решение, где вы просто
добавить текст в качестве метки:
Пример: * * тысяча тридцать-один
UILabel * text = [[UILable alloc] init];
text.text = @"bart";
[cell.contentView addSubview:iview];
[cell.contentView addSubview:label];
// not sure if this will position the text next to the label
// edited original example had [cell addSubview:label], maybe that's the problem
Может ли кто-нибудь указать мне правильное направление?
РЕДАКТИРОВАТЬ : Doh [cell.contentview addSubview:view]
не [cell addSubview:view]
возможно, я должен смотреть на это:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = ...;
CGRect frame = cell.contentView.bounds;
UILabel *myLabel = [[UILabel alloc] initWithFrame:frame];
myLabel.text = ...;
[cell.contentView addSubview:myLabel];
[myLabel release];
}