[英]How to resize an image in a UIButton while keeping the image's aspect ratio?
[英]Using auto layout to resize image width to 100% while keeping the aspect ratio
我在理解自动布局的工作方式时遇到问题。 我的控制器场景具有以下结构:
View
ScrollView
View
Image View
Constraints
SuperView.Bottom = View.Buttom
SuperView.Trailing = View.Trailing
View.Leading = SuperView.Leading
View.Top = SuperView.Top
Constraints
ScrollView.Top = SuperView.TopMargin
SuperView.TrailingMargin = ScrollView.Trailing (-16)
ScrollView.Leading = SuperView.Leading (-16)
BottomLayoutGuide.Top = ScrollView.Bottom (-40)
这处理了我需要的滚动视图。 视图中还有其他内容,但是我现在“卸载”它们以使Image View首先工作。 我想使ImageView具有基于屏幕尺寸的宽度(iPhone 5将具有320px,iPhone 6+将具有1080px)。 因此,我尝试向ImageView添加约束(View.Trailing = SuperView.Trailing; View.Leading = SuperView.Leading; AspectRatio-2:1),但它只是使图像尺寸变得非常大,以至于没有甚至适合屏幕。 如果我设置了高度限制,它可以工作,但是我不想设置高度限制,因为我希望尺寸不依赖于恒定的宽度/高度。
我究竟做错了什么? 我不太了解AutoLayout。 我了解AutoLayout的基本概念,但是当涉及到实现时,我不知道该怎么做...:/
图像的尺寸/纵横比与图像视图的contentMode
。 适当地设置contentMode
(听起来您可能想要UIViewContentModeScaleAspectFit
),并将clipsToBounds
设置为true,以使图像不会大于图像视图。 然后限制图像视图的大小,否则将调整其大小以适合图像。 更好的是,使用更合适尺寸的图像。 您显然正在使用巨大的图像(否则将不会被绘制成巨大的图像),这很浪费。
要检查/尝试的两件事:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.