快速在uiimage中以正确的方式显示较小或较大的高度,宽度图像

Posted

技术标签:

【中文标题】快速在uiimage中以正确的方式显示较小或较大的高度,宽度图像【英文标题】:show small or bigger height, width image in proper way in uiimage in swift 【发布时间】:2018-10-19 09:19:22 【问题描述】:

我想根据屏幕宽度调整这个图像的宽度和高度,并固定高度为 200 px

想要显示如下图所示的图像而不进行剪切和拉伸。

想以这种方式展示

不知道怎么弄到这个,浪费了2天时间搜索...

    ScaleAspectFit with ClipsToBounds = true

【问题讨论】:

我不知道你所说的“没有剪辑和拉伸”是什么意思。您必须在剪裁、拉伸或缩放之间做出选择。如果您希望您的图像不被拉伸(我猜是这种情况),您可以选择宽高比或宽高比填充。 Aspect fit 会调整图像的大小,因此它可能看起来不太好,Aspect Fill 会剪切您的图像,但会填充您的 UIImageView 框架。所以我建议imageView.contentMode = .scaleAspectFill 您应该向我们展示您的尝试。你修改UIView.ContentMode了吗? 设置imageView的宽度与view的宽度匹配,imageView的高度为200。然后将imageView的内容模式设置为scaleAspectFill和clipsToBounds为true 我想要缩放图像而不像第二张图像那样进行剪切和拉伸 @Md.IbrahimHassan 我不想剪辑图像.. 这很有用但不完全 【参考方案1】:

对于固定高度和可变宽度,您将无法实现图像的宽高比拟合、填充所有空白。

您必须在不裁剪空白、没有任何空白并保持图像纵横比不变的情况下显示图像的一种解决方案是保持 UIImageView 的宽度变化,并设置图像的纵横比约束,而不是设置高度约束。 UIImageView 会根据设备宽度自动放大和缩小。

不要忘记将内容模式设置为 Aspect Fit 或 Aspect Fill。

如果您使用 UITableView 显示内容,您可以 use UITableViewAutomaticDimension 为单元格设置动态高度,如果这是限制 UIImageView 高度的原因。

【讨论】:

我想修复 uiimage 大小,例如根据设备宽度和 200 像素高度,前导 20 像素和尾随 20 像素。图片必须根据我的问题中提到的这个尺寸自动响应(第二张图片) 实际上,您不能在不裁剪图像的任何部分的情况下,以相同的纵横比显示具有固定高度和可变宽度的图像。如答案中所述,它必须具有动态变化的高度,或者,它必须允许剪切其中的一部分,或者它必须具有一些不会被图像填充的空白。【参考方案2】:

为您的 imageView 设置:

1) ClipsToBounds -> 真

2) 内容模式 -> 纵横比填充 (example)

但是如果你不想剪辑,你需要根据屏幕的宽度改变单元格的高度。 屏幕宽度:

let screenWidth = UIScreen.main.bounds.width

【讨论】:

我将剪辑图像,但不想像我提到的那样剪辑(第二张图像).. 必须是适合 uiimage 的方面 如果不想剪辑,需要根据屏幕宽度改变单元格的高度。 那么,根据计算出的宽度,最佳高度是多少,例如根据设备宽度,20 px 前导和 20 px 尾随...?

以上是关于快速在uiimage中以正确的方式显示较小或较大的高度,宽度图像的主要内容,如果未能解决你的问题,请参考以下文章

UIImage 调整大小并裁剪以适合

在表格视图单元格中以编程方式显示图像

几种常用排序算法

如何只在几个部分中以编程方式更改UIImage的色调?

求和函数没有在熊猫中以正确的方式显示总和[关闭]

如何在 ios 4 中以编程方式将图像数组添加到 Imageview?