Я создал собственный прототип ячейки внутри раскадровки, не используя автозапуск, и я столкнулся с довольно неприятной проблемой, когда UIImageView у меня внутри ячейки, кажется, подчиняется ограничениям всех собственный, когда я хочу, чтобы он отражал размер ячейки с небольшим отступом.UIImageView auto resize внутри пользовательского UITableViewCell с разной высотой
Вот настройки в раскадровке Interface Builder и режим просмотра установлен на «масштаб, чтобы заполнить»
И вот что я вернусь, без редактирования размещения или масштабирование изображение, похоже, очень похоже на использование аспект заполнения.
Я пробовал различные варианты, и никто не похоже на работу для меня до сих пор, только другой способ я могу думать, поворот автоматического изменения размера и установить Rect себя вручную, когда ячейка создается какие-либо идеи?
и мой код для установки ячейки
- (void)setCell:(NSDictionary*)messageData
{
[_nameLabel setText:messageData[@"name"]];
[_messageLabel setText:messageData[@"message"]];
[_nameLabel sizeToFit];
[_messageLabel sizeToFit];
UIImage *image;
if([messageData[@"direction"] boolValue])
{
image= [[UIImage imageNamed:@"bubble_left"]resizableImageWithCapInsets:UIEdgeInsetsMake(18, 6, 6, 10) resizingMode:UIImageResizingModeStretch];
}
else
{
image= [[UIImage imageNamed:@"bubble_right"]resizableImageWithCapInsets:UIEdgeInsetsMake(18, 10, 6, 6) resizingMode:UIImageResizingModeStretch];
}
[_bubbleImage setImage:image];
}
и методы протокола
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CUIChatCellTableViewCell *cell = [_chatTableView dequeueReusableCellWithIdentifier:@"CustomCell" forIndexPath:indexPath];
NSDictionary *messageData = _testDataArray[indexPath.row];
[cell setCell:messageData];
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
_customCell = [_chatTableView dequeueReusableCellWithIdentifier:@"CustomCell"];
//configure cell
NSDictionary *messageData = _testDataArray[indexPath.row];
[_customCell setCell:messageData];
//Get height of the cell
CGFloat height = [_customCell.messageLabel frame].size.height+[_customCell.nameLabel frame].size.height+20;
return height;
}