定位和缩放启动屏幕图像

Posted

技术标签:

【中文标题】定位和缩放启动屏幕图像【英文标题】:Positioning and scaling launch screen image 【发布时间】:2016-01-12 18:31:36 【问题描述】:

我想用于启动屏幕的图像又高又窄。图片的大部分重要内容都在底部 2/3,所以如果要剪掉任何东西,我希望它剪掉顶部。

为了将它用作我的启动屏幕上所有尺寸和方向的设备的图像,我想做的是让宽度填满屏幕并将图像底部固定到屏幕底部.我尝试了“方面填充”和“方面适合”的各种组合以及底部(0)或底部和左侧(两者均为0)的约束。

结果始终是图像未缩放以适应宽度(它以全分辨率呈现,因此它偏离了左侧和/或右侧边缘),或者,如果正确缩放,图像居中垂直而不是在屏幕底部对齐。

这应该很简单,但我尽量不在我的应用程序中使用自动布局,并且不熟悉所有各种设置和约束的交互。最后,我希望图像缩放以填充设备的宽度,并且图像的底部位于屏幕底部。我想制作一个适用于所有设备的 XIB。看起来很简单。有什么建议吗?

【问题讨论】:

【参考方案1】:

我是这样做的:

    向 LauchScreen.xib 添加可裁剪/缩放但不显示特定信息的背景图像 为您的背景图像选择“缩放以填充”,并为到屏幕顶部、左侧、右侧和底部边框的距离添加约束(在我的示例中为 0) 在屏幕上添加所有具有透明背景的附加元素并添加所需的约束。 (在我的示例中,我刚刚选择了 centerX 和 Century 约束来放置标题。

【讨论】:

感谢您的回复。在我的例子中,如果允许图像在 x 和 y 维度上独立缩放,我的图像包括看起来很有趣的人和物体。似乎可行的方法(有点)是选择“Aspect fill”,这样图像就不会被加黑(就像“Aspect fit”那样)或被奇怪地拉伸(就像“scale to fill”那样)。问题是 IB 让我选择如何缩放或如何定位图像,但不能同时选择两者。现在,我所做的几乎与您使用无趣的背景图像完全相同。但我想使用我的其他图像。【参考方案2】:

在我的情况下,要使图像视图始终缩放以适应屏幕,关键解决方案是设置宽度的约束(最长的尺寸,如果您的图像高度大于宽度,您可能希望将其设置为高度) imageview 的宽度等于 1 个超级视图宽度。然后调整它的边距 - 为此约束设置乘数 0.8。

另外两个约束是 Align CenterY 和 CenterX to Superview 等于 0。

【讨论】:

以上是关于定位和缩放启动屏幕图像的主要内容,如果未能解决你的问题,请参考以下文章

Android Webview - 使用一个 loadUrl 缩放图像以正确适合屏幕

相对缩放 UIImageView

使用旋转/缩放/翻译在 Google 地图上定位图像

UIImageView 捏缩放和重新定位以适应覆盖

根据屏幕大小缩放图像按钮

代号一:如何缩放图像以适应屏幕宽度?