1

我有一个自定义的 TableViewCell,我希望它的高度与 UIImage 的大小相匹配。单元格中的 UIImageView 设置为宽高比,我希望 UIImageview 与它包含的 UIImage 一样高,并且宽度等于表格视图的宽度(屏幕宽度)。在方法 heightForRowAtIndexPath: 我有给定 indexPath.row 的单元格包含的图像。单元格是这样配置的,如果我将 heightForRowAtIndexPath 设置为 500,那么 imageview 是唯一会被拉伸的视图。

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        let image = comics[indexPath.row].image

        return image.size.height + 103
}

103 是构成单元格其余部分高度的点(按钮和标签)(见截图)。

现在的问题是:所有单元格都太高了!好像这还不够奇怪,其中一些太短了???(图片)我读过很多类似的帖子,但没有一个回答我的问题。不知何故,image.size.height 比 imageview 中的实际图像大?我只希望 uiimageview 在 AspectFit 模式下与其中的图像大小相同。

你对此有什么想法吗?如果您有任何进一步的问题,请问我!谢谢! 截屏

4

1 回答 1

4

十分感谢大家!长宽比的东西做到了:

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
    }
于 2016-03-11T12:20:13.503 回答