如何设置 SwiftUI AccessoriesCorner 手表小部件的背景?

问题描述 投票:0回答:1

我想设置一个非常简单的

accessoryCorner
SwiftUI 小部件,但它显示得很丑。

这是我的代码:

struct WidgetView: View {
    @Environment(\.widgetFamily) var widgetFamily
    var body: some View {
        switch widgetFamily {
            case .accessoryCorner:
                Image(systemName: "cart")
                    .widgetLabel {
                        Text("Label")
                    }
            default:
                Text("?")
        }
    }
}  

这会产生以下表盘:

由于某种原因,图像(购物车)在接近白色的背景上以白色显示,即看不到。
我尝试了各种方法来设置更好的背景,例如

ZStack
AccessoryWidgetBackground()
background(Color.clear)
等,但都不起作用。

如何显示没有背景的图像,例如左上角的日期(DI)?

swiftui widget watchos
1个回答
1
投票

更新:

至此,问题已经解决了。
我从 Xcode 15.1 预览中得到了提示:

然后我修改了我的

WidgetConfiguration
如下:

var body: some WidgetConfiguration {
    StaticConfiguration(kind: widgetKind, provider: Provider()) { entry in
        if #available(iOS 17.0, watchOSApplicationExtension 10.0, *) {
        WidgetView(entry: entry)
            .containerBackground(.fill.tertiary, for: .widget)
        } else {
            WidgetView(entry: entry)
                .padding()
                .background()
        }
    }

并且附件角小部件是使用

创建的
private func accessoryCorner(entry: Provider.Entry) -> some View {
    entry.image
        .modifier(ContainerBackground())
        .font(.system(size: 20))
        .widgetLabel {
            Text"Some text")
        }
}

小部件现已正确显示。

之前的回答:

我联系Apple并得到以下答复:

我们已审核您的请求并得出结论:不存在 给定当前支持的方式来实现所需的功能 运输系统配置。

© www.soinside.com 2019 - 2024. All rights reserved.