SwiftUi - 背景无法更改/无法访问
Posted
技术标签:
【中文标题】SwiftUi - 背景无法更改/无法访问【英文标题】:SwiftUi - Background can't be changed / can't be reached 【发布时间】:2019-08-28 12:51:27 【问题描述】:我的背景有问题。 自从我玩 SwiftUi 以来,一切都很好。
昨天我用背景填充了我的屏幕,只是顶部的配件不起作用,所以我撤消了我的更改。现在的问题是:我无法再了解我的背景了...
其实我无法达到我的背景,所以我无法改变它。
这是我的代码:
struct ContentView : View
@State private var name = String()
@State private var pw = String()
var body: some View
VStack
NavigationView
Spacer()
//Einleitung
VStack
Image("user")
.resizable()
.frame(width: 100 , height: 100)
Spacer()
Text("Hello User.")
Text("Please insert your Nickname and your Password")
.lineLimit(nil)
.background(Color.blue)
.padding()
//TextField eingabe für Name + Passwort
HStack
Spacer()
Text("Username")
.font(.headline)
Spacer()
Text("Password")
.font(.headline)
Spacer()
.background(Color.red)
HStack
Spacer()
TextField($name,placeholder: Text("Fill your name"))
.textFieldStyle(.roundedBorder)
.scaledToFit()
Spacer()
SecureField($pw, placeholder: Text("123456789"))
.scaledToFit()
.textFieldStyle(.roundedBorder)
Spacer()
.background(Color.green)
//LOGIN BTN
Spacer()
Spacer()
Button(action:
print("Hallo \(self.name) - dein Password ist \(self.pw)")
//NavigationDestinationLink :
)
HStack
Spacer()
Text("Login")
.color(.white)
.bold()
.font(.headline)
.padding(.horizontal)
Spacer()
.background(Color.red,cornerRadius: 40)
.frame(width: 200, alignment: .bottom)
Spacer()
.background(Color.black)
.background(Color.yellow)
【问题讨论】:
【参考方案1】:navigationView
I described earlier here in this answer 内部视图的背景颜色存在问题。它的摘要是在您要更改背景颜色的视图之上还有另一个白色视图。所以你看不到颜色。
但是现在,你应该像这样重新排列你的视图,
1- NavigationView
应该是第一个
2- 其他所有内容(包括外部的 VStack
)都应包裹在 ZStack
中
3- Color
作为ZStack
的第一视图
var body: some View
NavigationView
ZStack
Color.yellow
VStack
Text("Everything else")
我希望 Apple 尽快为此类设置提供直接 API。
【讨论】:
以上是关于SwiftUi - 背景无法更改/无法访问的主要内容,如果未能解决你的问题,请参考以下文章
Swiftui + Firestore - 无法访问 Firestore 中的字段
SwiftUI PlaygroundBook 我无法访问其他视图