我有一个HomeView,它基本上是MapView和Circle的ZStack,并且我关注的是https://www.hackingwithswift.com/books/ios-swiftui/advanced-mkmapview-with-swiftui。
当我在ContentView中使用ZStack时,地图和圆圈都会出现。但是,我已经设置了身份验证,因此当我执行以下操作时(下面),我只会看到地图,而看不到圆圈:
ContentView.swift
import SwiftUI
struct ContentView: View {
@EnvironmentObject var auth: AuthenticationState
var body: some View {
ZStack {
if auth.user != nil {
HomeView()
} else {
GatekeeperView()
}
}
}
}
HomeView.swift
struct HomeView: View {
var body: some View {
ZStack {
Circle()
.fill(Color.blue)
.opacity(1)
.frame(width: 32, height: 32)
MapView().edgesIgnoringSafeArea(.all)
}
}
}
获得授权的用户可以查看HomeView。不幸的是,这个圆圈没有出现。
答案 0 :(得分:1)
尝试为.zIndex()
中的视图显式设置ZStack
:
struct HomeView: View {
var body: some View {
ZStack {
Circle()
.fill(Color.blue)
.opacity(1)
.frame(width: 32, height: 32)
.zIndex(1)
MapView().edgesIgnoringSafeArea(.all)
.zIndex(2)
}
}
}
或者为您的ZStack
重新排序:
struct HomeView: View {
var body: some View {
ZStack {
MapView().edgesIgnoringSafeArea(.all)
Circle()
.fill(Color.blue)
.opacity(1)
.frame(width: 32, height: 32)
}
}
}