导航视图背景颜色
Navigation View background Color
我正在尝试在我的 SwiftUi 列表上设置背景颜色,至于我的 post 此处:
我找到了一个解决方案,插入以下代码作为 init()
init() {
UITableView.appearance().backgroundColor = UIColor.clear
UITableViewCell.appearance().backgroundColor = .clear
}
我现在的问题是......一旦我插入导航 Link 背景
颜色又变白了。
如何设置NavigationView的颜色为.clear?我试过 .foregroundColor(.clear)
但注意到...
我想要的是没有白色背景的导航 link.. 像这样
但实际上它是这样的:
struct ContentView: View {
var dm : DataManager
init(dmi: DataManager) {
self.dm = dmi
UITableView.appearance().backgroundColor = UIColor.clear
UITableViewCell.appearance().backgroundColor = .clear
}
var body: some View {
ZStack{
RadialGradient(gradient: Gradient(colors: [.orange, .red]), center: .center, startRadius: 100, endRadius: 470).edgesIgnoringSafeArea(.all)
.overlay(
// NavigationView{
List{
ForEach(dm.vector, id: \.self) { item in
Text(String(item))
}
}
// }
)
}
}
}
很简单。我不建议你做,你最好按照苹果ui设计推荐
struct ContentView: View {
init() {
UITableView.appearance().backgroundColor = UIColor.clear
UITableViewCell.appearance().backgroundColor = .clear
}
var body: some View {
NavigationView {
RadialGradient(gradient: Gradient(colors: [.orange, .red]), center: .center, startRadius: 100, endRadius: 470).edgesIgnoringSafeArea(.all)
.overlay(
List{
Text("Alfa")
NavigationLink(destination: Text("LINKED")) {
Text("Label")
}
}.navigationBarTitle("Table")
)
}
}
}
在视图调试器中查看,NavigationView 创建的视图层次结构似乎包括一个覆盖整个屏幕且无法修改的白色背景视图。
但是,我能够通过在导航堆栈中的各个视图上设置整个屏幕的背景来解决这个问题,它覆盖了导航视图创建的覆盖层哈哈。
下面是一个使用红色背景的例子:
struct ContentView: View {
var body: some View {
NavigationView {
ZStack {
Color.red.edgesIgnoringSafeArea(.all)
ListView {
Text("Hello, world!")
}
}
}
}
}
我正在尝试在我的 SwiftUi 列表上设置背景颜色,至于我的 post 此处:
我找到了一个解决方案,插入以下代码作为 init()
init() {
UITableView.appearance().backgroundColor = UIColor.clear
UITableViewCell.appearance().backgroundColor = .clear
}
我现在的问题是......一旦我插入导航 Link 背景 颜色又变白了。
如何设置NavigationView的颜色为.clear?我试过 .foregroundColor(.clear) 但注意到...
我想要的是没有白色背景的导航 link.. 像这样
但实际上它是这样的:
struct ContentView: View {
var dm : DataManager
init(dmi: DataManager) {
self.dm = dmi
UITableView.appearance().backgroundColor = UIColor.clear
UITableViewCell.appearance().backgroundColor = .clear
}
var body: some View {
ZStack{
RadialGradient(gradient: Gradient(colors: [.orange, .red]), center: .center, startRadius: 100, endRadius: 470).edgesIgnoringSafeArea(.all)
.overlay(
// NavigationView{
List{
ForEach(dm.vector, id: \.self) { item in
Text(String(item))
}
}
// }
)
}
}
}
很简单。我不建议你做,你最好按照苹果ui设计推荐
struct ContentView: View {
init() {
UITableView.appearance().backgroundColor = UIColor.clear
UITableViewCell.appearance().backgroundColor = .clear
}
var body: some View {
NavigationView {
RadialGradient(gradient: Gradient(colors: [.orange, .red]), center: .center, startRadius: 100, endRadius: 470).edgesIgnoringSafeArea(.all)
.overlay(
List{
Text("Alfa")
NavigationLink(destination: Text("LINKED")) {
Text("Label")
}
}.navigationBarTitle("Table")
)
}
}
}
在视图调试器中查看,NavigationView 创建的视图层次结构似乎包括一个覆盖整个屏幕且无法修改的白色背景视图。
但是,我能够通过在导航堆栈中的各个视图上设置整个屏幕的背景来解决这个问题,它覆盖了导航视图创建的覆盖层哈哈。
下面是一个使用红色背景的例子:
struct ContentView: View {
var body: some View {
NavigationView {
ZStack {
Color.red.edgesIgnoringSafeArea(.all)
ListView {
Text("Hello, world!")
}
}
}
}
}