ios - 如何在 SwiftUI 中更改表单的背景颜色?
问题描述
我想更改表单的“浅灰色”背景颜色,但.foregroundColor(Color.blue)
似乎.background(Color.blue)
不起作用
struct ContentView : View {
@State var value = ""
var body: some View {
Form {
Section(header: Text("First Name")) {
TextField($value)
}
Section(header: Text("Last Name")) {
TextField($value)
}
}.foregroundColor(Color.blue)
}
}
解决方案
一个可行的解决方案:
所有 SwiftUIList
都由UITableView
iOS 中的 a 支持。所以你需要改变tableView的背景颜色。但由于Color
和UIColor
值略有不同,您可以摆脱UIColor
.
struct ContentView: View {
init(){
UITableView.appearance().backgroundColor = .clear
}
@State var value = ""
var body: some View {
Form {
Section(header: Text("First Name")) {
TextField("First Name", text: $value)
}
Section(header: Text("Last Name")) {
TextField("Last Name", text: $value)
}
}
.foregroundColor(Color.blue)
.background(Color.yellow)
}
}
现在你可以使用任何你想要的背景(包括所有Color
s)
请注意,那些顶部和底部的白色区域是安全的,您可以使用.edgesIgnoringSafeArea()
修饰符来摆脱它们。
恢复
由于UITableView.appearance().backgroundColor
适用于全局,您可以使用.onAppear
修饰符在不同的视图中更改它(因为它是全局更改)。因此,您可以使用另一个 onAppear
或onDisappear
将其重置为您想要的。
默认颜色为:
UIColor.systemGroupedBackground
对于分组样式。和
UIColor.systemBackground
为素色风格。
它们都自动支持暗模式和亮模式。
推荐阅读
- java - 如何在不使用 indexOf() 的情况下匹配 ^ 和 \ 等特殊字符?
- python - 如何将 docker 卷挂载作为 python 子进程运行?
- reactjs - 状态是选择菜单中的一项更改
- java - 本地主机上未收到 UDP 数据包
- java - Android UI 测试 - 本地化字符串测试
- python - 使用 Travis CI 运行 Django 测试时,我的测试正在本地运行和完成,但没有远程运行(或被发现)
- android - 我的 Android 应用程序中的改造代码有什么问题?
- vue.js - 使用 ccapturejs 从 konva 画布动画中平滑 60 fps 视频
- kotlin - 在准备显示数据的 MVVM 模式中?
- reactjs - 您似乎正在将关键帧声明 (bKXFnj) 插入到未标记的字符串中