无论设备如何,如何使 UIImageView 占据屏幕的固定百分比?
Posted
技术标签:
【中文标题】无论设备如何,如何使 UIImageView 占据屏幕的固定百分比?【英文标题】:How to make a UIImageView take up a fixed percent of the screen regardless of device? 【发布时间】:2016-09-21 01:09:18 【问题描述】:假设我有一个设置为矢量的大 UIImageView,并且我希望这个 ImageView 占据屏幕宽度的 90%,同时保持它的纵横比,无论设备如何,因为它是一个矢量,所以调整大小不是问题。高度无关紧要,因为我需要它来保持它的纵横比,只要它是屏幕宽度的 90%。如何在 UIBuilder 中做到这一点?
【问题讨论】:
【参考方案1】:以下是如何将图像宽度设为其父视图的 90%:
-
将
UIImageView
添加到情节提要。
control-从imageView拖到背景视图。
从弹出窗口中选择等宽。
将约束的multiplier
更改为0.9
。
要设置纵横比,control-从UIImageView
拖动到自身,然后从弹出窗口中选择Aspect Ratio。将结果约束的multiplier
值设置为所需值。您可以使用诸如3:4
之类的比率或诸如0.75
之类的浮点值。
在 Attributes Inspector 中将UIImageView
的Content Mode 设置为Scale To Fill,Aspect Fit,或Aspect Fill,以便UIImage
填充UIImageView
。
【讨论】:
谢谢!我也找到了另一个类似的解决方案,也许你可以解释为什么它不如你的步骤。 1)按照您的步骤直到步骤 4 2)然后,而不是控制拖动,单击您的 imageView 并在视图模式中选择“方面填充”。它们似乎具有相同的效果。 我的方法设置了一个约束来设置 UIImageView 的高度。如果不设置 imageView 的高度,可能会得到不可预知的结果。你真的应该两者都做。设置纵横比约束让Auto Layout知道让UIImageView有多高,然后设置aspect fit或aspect fill让UIImage填充UImageView指定的空间. 您可能会注意到我的方法与其他方法之间的不同之处在于,如果您的标签位于图像下方的8
点,我的方法将正确调整UIImageView
的大小以使其成为可能。
经过更多测试后,这仅在 imageView 不与任何其他视图接壤时才有效。当与另一个视图接壤时(如屏幕顶部),结果会完全恢复到之前的状态(不同设备上的大小可变)。
重要提示:忽略我的最后一句话,这是我的错,我在单击纵横比时没有控制拖入视图本身。点击进入本身完全有效。谢谢!以上是关于无论设备如何,如何使 UIImageView 占据屏幕的固定百分比?的主要内容,如果未能解决你的问题,请参考以下文章
如何获取点在UIImageView上的点的坐标,使它们在所有设备(不同大小/分辨率)上的相同位置?