Alf*_*lfi 12 widget background-color ios swiftui
我知道我可以使用以下代码更改 SwiftUI 中的视图背景颜色:
.background(Color(.systemGroupedBackground))
Run Code Online (Sandbox Code Playgroud)
但是我不能为小部件背景颜色本身做到这一点!
我使用这个代码:
struct XWidget: Widget { // MARK: Widget is defined here
var body: some WidgetConfiguration {
StaticConfiguration(
kind: "xWidget",
provider: xProvider(),
placeholder: Text("Loading...")) { entry in
xWidgetEntryView(entry: entry).background(Color(.systemGroupedBackground)) // <= here
}.supportedFamilies([.systemSmall, .systemMedium, .systemLarge])
}
}
Run Code Online (Sandbox Code Playgroud)
但结果是这样的:
Asp*_*eri 33
您需要指定全帧,如下面的演示
StaticConfiguration(
kind: "xWidget",
provider: xProvider(),
placeholder: Text("Loading...")) { entry in
xWidgetEntryView(entry: entry)
.frame(maxWidth: .infinity, maxHeight: .infinity) // << here !!
.background(Color.green)
}.supportedFamilies([.systemSmall, .systemMedium, .systemLarge])
Run Code Online (Sandbox Code Playgroud)
您还可以使用 ZStack 在小部件视图中设置颜色,如下所示:
var body: some View {
VStack {
ZStack {
Color.black
.ignoresSafeArea()
Link(destination: Deeplink.image.url!) {
Image("exampleImage")
.resizable()
.aspectRatio(contentMode: .fit)
.padding(.vertical, 3)
}
}
Text("Example text")
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想更改小部件的背景颜色,您应该修改您的 Assets.xcassets。
Widget 目标中的 Assets.xcassets 有一个名为“WidgetBackground”的颜色集。
更改“WidgetBackground”颜色不仅会更改小部件的背景颜色,还会更改显示在小部件库中的小部件的添加按钮的背景颜色。
对于那些试图更改支持深色和浅色模式的小部件背景的人。
Assets.xcassets您的小部件扩展"WidgetBackground""WidgetBackground""Any, Dark".background(Color("WidgetBackground"))public var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: MyCustomTimeline()) { entry in
MyCustomWidgetView(entry: entry)
.background(Color("WidgetBackground"))
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6067 次 |
| 最近记录: |