HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在UITableViewCell中设置与宽度成比例的UIImageView高度大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个UITableView,其中每个单元格包含一个纵向或横向UI ImageView,其中图像在填充屏幕宽度时保持其纵横比,如下所示:

|        |
|########|
|########|
|########|
|########|
|########|
|        |
|########|
|########|
|########|
|        |

我已经设置了autolayout约束来将UIImageView的边缘附加到表视图单元格的contentView.这适用于宽度,但高度不是我想要的 – 它总是扩展到底层图像的整个高度.

我在表视图上有这些设置:

self.tableView.estimatedRowHeight = 100.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;

在构造单元格时,我正在尝试计算必要的高度,以便我可以更改UIImageView的框架(或高度约束):

let cell = tableView.dequeueReusableCellWithIdentifier("activityPostCell",forIndexPath: indexPath) as UITableViewCell
let image = UIImage(named: "my-image.jpg")
let aspectRatio = image!.size.height / image!.size.width

let imageView = cell.viewWithTag(15) as UIImageView        
let imageViewHeight = aspectRatio * imageView.frame.width

这里的问题是我得到的imageView.frame是在布局发生之前,所以无论如何我都没有计算出正确的高度.

我是以正确的方式来做这件事的吗?有没有一种简单的方法来设置UIImageView的宽高比以匹配它包含的图像?提前致谢.

解决方法

根据@ Wain的建议,添加宽高比约束解决了这个问题:

let image = UIImage(named: "my-image.jpg")
let aspectRatio = image!.size.height / image!.size.width

let imageView = cell.viewWithTag(15) as UIImageView

imageView.addConstraint(NSLayoutConstraint(
    item: imageView,attribute: NSLayoutAttribute.Height,relatedBy: NSLayoutRelation.Equal,toItem: imageView,attribute: NSLayoutAttribute.Width,multiplier: aspectRatio,constant: 0)
)

大佬总结

以上是大佬教程为你收集整理的ios – 在UITableViewCell中设置与宽度成比例的UIImageView高度全部内容,希望文章能够帮你解决ios – 在UITableViewCell中设置与宽度成比例的UIImageView高度所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: