在 SwiftUI 中启动屏幕图像拉伸

Jas*_*ady 7 xcode ios launch-screen swiftui

我希望我能得到一些帮助来解释为什么会发生这种情况。我一直在努力将我一直在学习/构建的应用程序从 UIKit 切换到 SwitfUI,因为这似乎是未来......而且学习起来很有趣。

我有我的 plist 设置与背景和图像 在此处输入图片说明

当模拟器打开或清除并擦除模拟器时,我第一次运行它是这样的: 在此处输入图片说明

但是,每次运行应用程序后,图像都会拉伸。 在此处输入图片说明

当我在手机上尝试时,它似乎每次都会拉伸。我不确定这里发生了什么。只是 SwiftUI 需要更多工作还是我缺少某个设置?

Tom*_*ann 24

这似乎是一个 SwiftUI 错误,尚未修复。解决这个错误的唯一方法是返回故事板。

\n

您必须创建启动屏幕故事板并将其链接到您的项目。

\n

为此:

\n
    \n
  • 创建一个新文件(cmd + n)并选择启动屏幕
  • \n
  • 在新故事板中自定义启动屏幕(不要使用 SVG 格式的图像)
  • \n
  • 转到项目设置 ->“常规”并选择启动屏幕文件作为 \xe2\x80\x9cLaunch Screen File\xe2\x80\x9d,这会在 info.plist 中创建一个新条目
  • \n
  • 删除 info.plist 中旧的 SwiftUI 启动屏幕条目
  • \n
\n

  • 我同意即使对于纯粹的 SwiftUI 应用程序来说 Storyboard 仍然是必要的。对我来说,问题是布尔值 `UIImageRespectsSafeAreaInsets` 不足以告诉 SVG 如何表现。对于“UIImageView”,您可以选择“缩放至填充”、“宽高比适合”、“宽高比填充”、“居中”、“左上”等。为什么 Xcode 不在“info.plist”中提供这些相同的键来告诉 SVG 当您不使用 Storyboard 时如何表现? (3认同)

Jam*_*jon 6

我会提到这一点,因为它在技术上对我有用。

关闭设备。再次打开它。重新安装应用程序。启动屏幕不再被拉伸!

这是一个奇怪的行为,它让我想知道这是否是 iOS 的错误,而不是 swiftui 的错误。

我从这篇文章的评论中得到了这个答案。


Swi*_*yle 2

当 @1x 为 200x200px 时,将图像大小调整为 @1x、@2x 和 @3x 版本。

然后将其上传到 Assets 文件夹并更改 info.plist Image Name

这对我有用。