我来自XAML世界,我们的图像拉伸模式为Fill
,UniformToFill
和Uniform
。我的目标是在我的iOS应用中实现UniformToFill
模式。在iOS中,我遇到了ScaleToFill
,AspectToFit
,AspectToFill
以及其他许多人。它们都不符合我的要求。
所需行为:布局中的UIImageView
(图像容器)大小保持不变。根据{{1}}的固定大小缩放图像并保持图像本身的纵横比。在匹配任一侧(垂直,水平)时,剪切图像的其余部分。
为了更好地说明,这是截图;我希望从左起第三位。
答案 0 :(得分:0)
那是.ScaleAspectFill
的作用。
您说的是UIImage
作为容器?我想你应该研究UIImageView
。这样的事情会起作用(用Swift
写的,但很容易适应Objective-C
let image = UIImage(named: "your_image")
let imageView = UIImageView(image: image)
imageView.contentMode = .ScaleAspectFill
答案 1 :(得分:0)
我认为您应该将UIViewContentModeScaleAspectFill
设置为图片视图的内容模式。
您可以参考Apple documentation了解更多详情。
它陈述了scaleAspectFill
,
缩放内容以填充视图大小的选项。一些 可以剪切内容的一部分以填充视图的边界。
scaleAspectFit
通过保持纵横比来缩放内容以适合视图大小的选项。视图边界的任何剩余区域都是透明的。
尝试两者感受真正的差异。
答案 2 :(得分:0)
XAML到iOS的转换如下。
Fill
= ScaleToFill
Uniform
= AspectToFit
&
UniformToFill
= AspectToFill
这是完全匹配。如果你没有得到这个结果,那就意味着你在其他方面做错了。否则,这是完美的匹配。