iOS 小部件背景图像在几分钟后变黑
iOS widget background-image goes black after couple of minutes
我目前正在使用 SwiftUI 开发一个 iOS 小部件,我的中型小部件的背景图像有一个奇怪的行为。
我正在根据设备的当前颜色模式设置背景图像,该模式在大多数情况下都有效。但是,当应用程序在后台运行几分钟后,背景图像会变黑,导致文本无法阅读。任何其他 UI 元素仍然可见。当我恢复到我的应用程序时,小部件会自行刷新并且背景图像再次可见。
背景图像包含在我的 image.assets 我的小部件扩展中,因此小部件应该始终可以访问它,不是吗?
此小部件适用于 iOS 14 岁及以上。
我是这样设置背景图片的:
struct MediumWidget: View {
@Environment(\.colorScheme) var colorScheme
var body: some View {
HStack(alignment: .center, spacing: nil) {
// Content (shortend)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.edgesIgnoringSafeArea(.all)
.background(
backgroundImage
.renderingMode(.original)
.resizable()
.scaledToFill()
)
}
var backgroundImage: Image {
if colorScheme == .dark {
return Image("dark")
}
return Image("light")
}
}
我不知道该怎么做,有人知道我做错了什么吗?
提前致谢!
编辑 1:此问题仅出现在这两个背景图像上。当我使用任何其他背景图像时,小部件不会变黑。
由于问题只出现在这两个特定图像上,因此文件似乎是
- 未正确添加到资产文件夹
- 损坏或损坏
尝试为两张图片生成一个全新的文件(例如截屏),并用资产文件夹中的当前图片替换它们。这很可能会解决您的问题。
我目前正在使用 SwiftUI 开发一个 iOS 小部件,我的中型小部件的背景图像有一个奇怪的行为。
我正在根据设备的当前颜色模式设置背景图像,该模式在大多数情况下都有效。但是,当应用程序在后台运行几分钟后,背景图像会变黑,导致文本无法阅读。任何其他 UI 元素仍然可见。当我恢复到我的应用程序时,小部件会自行刷新并且背景图像再次可见。
背景图像包含在我的 image.assets 我的小部件扩展中,因此小部件应该始终可以访问它,不是吗?
此小部件适用于 iOS 14 岁及以上。
我是这样设置背景图片的:
struct MediumWidget: View {
@Environment(\.colorScheme) var colorScheme
var body: some View {
HStack(alignment: .center, spacing: nil) {
// Content (shortend)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.edgesIgnoringSafeArea(.all)
.background(
backgroundImage
.renderingMode(.original)
.resizable()
.scaledToFill()
)
}
var backgroundImage: Image {
if colorScheme == .dark {
return Image("dark")
}
return Image("light")
}
}
我不知道该怎么做,有人知道我做错了什么吗?
提前致谢!
编辑 1:此问题仅出现在这两个背景图像上。当我使用任何其他背景图像时,小部件不会变黑。
由于问题只出现在这两个特定图像上,因此文件似乎是
- 未正确添加到资产文件夹
- 损坏或损坏
尝试为两张图片生成一个全新的文件(例如截屏),并用资产文件夹中的当前图片替换它们。这很可能会解决您的问题。