如何设置图像UniformToFill拉伸模式

How to set image UniformToFill stretch mode

我来自 XAML 世界,那里有 FillUniformToFillUniform 图像拉伸模式。我的目标是在我的 iOS 应用程序中实现 UniformToFill 模式。在 iOS 中,我遇到了 ScaleToFillAspectToFitAspectToFill 和许多其他人。 None 符合我的要求。

要求的行为:UIImageView布局中的(图像容器)大小保持不变。按照UIImageView的固定尺寸缩放图片,并保持图片本身的宽高比。在匹配任一侧(垂直、水平)后,裁剪图像的其余部分。

为了更好地说明,这是屏幕截图;我希望获得左起第三名。

Image stretch mode

这就是 .ScaleAspectFill 所做的。

您是在谈论 UIImage 作为容器吗?我认为您应该研究 UIImageView。类似的东西会起作用(这是用 Swift 编写的,但很容易适应 Objective-C

let image = UIImage(named: "your_image")
let imageView = UIImageView(image: image)
imageView.contentMode = .ScaleAspectFill

我认为您应该将 UIViewContentModeScaleAspectFill 设置为图像视图的内容模式。

详情请参考Apple documentation

它表示 scaleAspectFill

The option to scale the content to fill the size of the view. Some portion of the content may be clipped to fill the view’s bounds.

scaleAspectFit

The option to scale the content to fit the size of the view by maintaining the aspect ratio. Any remaining area of the view’s bounds is transparent.

两者都试一下,感受真正的不同。

XAML到iOS的转换如下。

Fill = ScaleToFill

Uniform = AspectToFit &

UniformToFill = AspectToFill

这是完全匹配。如果你没有得到这个结果,那么这意味着你在其他事情上犯了错误。否则,这就是完美匹配。