如何使用 Xcode 使 LaunchScreen.xib 中的图像填充背景

Posted

技术标签:

【中文标题】如何使用 Xcode 使 LaunchScreen.xib 中的图像填充背景【英文标题】:How to make an image in LaunchScreen.xib fill the background using Xcode 【发布时间】:2018-04-24 17:36:07 【问题描述】:

所以我正在尝试设置一个全屏背景,其中间有一个徽标图像,其中包含一个现有的 LaunchScreen.xib(用于 react 本机项目),但我遇到了自动格式化问题。

我看到我可以向我的 ImageView 添加约束以保持纵横比,但我不确定如何让它填充(裁剪以适应)视图。当我在设备上进行测试时,它与界面构建器保持相同的正方形,并且不会填满屏幕。我一直在尝试为图像添加不同的约束,但似乎并没有影响它。

另外,我如何在不同的设备上预览它,如 UI 中所示。选择不同的设备似乎根本不会改变方形画布视图。

顺便说一句,我不想​​将它作为每个屏幕尺寸的单独资产 - 我很想知道如何使用标准 xib 界面构建器使用布局规则来构建它。

【问题讨论】:

您是否为显示 xib 文件的视图设置了约束? 我为图像添加了约束,但没有添加到根父视图。根父视图设置为内容模式 Scale to Fill 【参考方案1】:

xib 文件由 UIViewController 内的视图显示。 当您在 xib 文件中为 UIImage 设置约束时(例如在 UIView 中),您应该在 UIViewController 中设置 UIView 的约束。 然后现在将根视图的约束设置为边缘,并将imageViewContent Mode 设置为您想要的苹果文档所说的:

scaleAspectFitscaleAspectFill 模式缩放图像以适应或填充空间,同时保持图像的原始纵横比。 scaleToFill 值会在不考虑原始纵横比的情况下缩放图像,这会导致图像看起来失真。其他内容模式将图像放置在图像视图边界中的适当位置,而不对其进行缩放。

【讨论】:

以上是关于如何使用 Xcode 使 LaunchScreen.xib 中的图像填充背景的主要内容,如果未能解决你的问题,请参考以下文章

iOS Xcode LaunchScreen故事板无法显示

Xcode12 SwiftUI 项目创建 LaunchScreen 故事板

iOS7 iPhone 5 的 Xcode 6 LaunchScreen.xib 窗口大小错误

LaunchScreen&LaunchImage

尝试本地化 LaunchScreen.storyboard 以在 iOS 10 中使用 xcode 8.3.3 支持语言时出现问题

Xcode:LaunchScreen.storyboard 未显示