只要我的资产目录中的图像资产存在设备变体,macCatalyst 就找不到该资产。此问题不会出现在 iOS 或 iPadOS 上,仅出现在 macCatalyst 上。一旦我删除所有变体,图像就会正确显示。如果我添加任何变体,例如 iPad、macCatalyst 或 Mac 的备用图像,则整个图像将不再显示。
有人遇到类似问题吗?
代码片段非常简单:
struct MyView: View {
var body: some View {
//Image name is different than the ones on the screenshots
Image("myimage")
}
}
我尝试过这个并遇到了同样的问题。我想出了两个解决方案:
请勿使用 Mac Catalyst。创建非 Catalyst Mac 版本。 SwiftUI 代码在 iOS 和 macOS 上运行。在这种情况下,macOS 应用程序将使用图像资源的 Mac 变体或通用变体(如果没有 Mac 变体)。
如果您出于某种原因需要使用 Mac Catalyst,请更改该行:
Image("myimage")
至:
Image(uiImage: UIImage(named: "myimage")!)
这将允许图像出现在 iOS 和 macOS 中(通过 Mac Catalyst)。 macOS 应用程序将使用 iPad 图像。