У меня есть пользовательский TableViewCell, и я хочу, чтобы его высота соответствовала размеру UIImage. UIImageView в ячейке настроен на соответствие аспекту, и я хочу, чтобы UIImageview был таким же высоким, как и UIImage, который он содержит, и ширину, равную ширине представления таблицы (ширина экрана). В методе heightForRowAtIndexPath: у меня есть изображение, которое содержит ячейка в указанном indexPath.row. Ячейки настроены таким образом, что если я установил heightForRowAtIndexPath, скажем, 500, изображение будет единственным видом, который будет растянут.Установите высоту UITableViewCell на высоту UIImage?
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let image = comics[indexPath.row].image
return image.size.height + 103
}
103 являются точками, которые делают остальную часть высоты ячейки (кнопок и меткой) (см sceenshot).
Теперь проблема: все ячейки слишком высоки! и как будто это не было бы довольно странным, некоторые из них слишком коротки? (picture) И я прочитал много подобных сообщений, но ни один из них не ответил на мой вопрос. Как-то изображение image.size.height больше, чем фактическое изображение в изображении? ?? Я просто хочу, чтобы uiimageview был того же размера, что и изображение в нем, в режиме AspectFit.
У вас есть идеи по этому вопросу? Если у вас возникнут дополнительные вопросы, спросите меня! Спасибо! Screenshot
все ячейки имеют изображение? вы уверены в отношении массива изображений и indexPath.row? – UlyssesR
Возможно, вам нужно рассчитать высоту изображения с отношением image.width/screen.width? –
Да, этот массив является массивом источников данных, я использую его для возврата строк в разделе. –