将UITableViewCell高度设置为UIImage高度?
问题描述:
我有一个自定义TableViewCell,我希望它的高度匹配的UIImage的大小。单元格中的UIImageView被设置为纵横比,我希望UIImageView和它包含的UIImage一样高,宽度等于表格视图的宽度(屏幕宽度)。在方法heightForRowAtIndexPath中:我有一个图像,表示给定indexPath.row中的单元格。这些单元格是这样配置的,如果我将heightForRowAtIndexPath设置为500,那么imageview是唯一会被拉伸的视图。将UITableViewCell高度设置为UIImage高度?
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let image = comics[indexPath.row].image
return image.size.height + 103
}
103是使细胞高度(按钮和标签)的其余部分(见sceenshot)的点。
现在的问题:所有的细胞太高!仿佛这不会很奇怪,其中有些太短了? (图片)我已经阅读了很多类似的帖子,但没有人回答我的问题。 不知何故image.size.height大于图像视图中的实际图像? 我只是希望uiimageview与AspectFit中的图像尺寸相同。
你有什么想法吗?如果您还有其他问题请求,请问我! 谢谢! Screenshot
答
非常感谢你们!与长宽比的东西呢:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let image = comics[indexPath.row].image
let aspectRatioImg = image.size.height/image.size.width
return view.bounds.width * aspectRatioImg + 103
}
所有的细胞都有图像?你确定图像数组和indexPath.row的关系吗? – UlyssesR
也许你需要计算图像高度与比例image.width/screen.width? –
是的,这个数组是数据源数组,我用它来返回部分中的行。 –