我最近将设计放入VStack中,因此我可以让SwiftUI管理布局,并且将其取消配置。这是新代码:
import SwiftUI
struct HomeView: View {
var body: some View {
ZStack {
Color.white.edgesIgnoringSafeArea(.all)
VStack {
ZStack(alignment: .leading) {
NavigationView {
GeometryReader { geometry in
ZStack(alignment: .leading) {
Color.white
ArcShape2(geometry: geometry)
.foregroundColor(Color("HomeTopBackground"))
}
}
.navigationBarTitle("", displayMode: .inline)
.navigationBarHidden(true)
}
Text("Title goes here")
}
.aspectRatio(2, contentMode: .fit)
VStack {
Text("Some content")
Spacer()
}
}
}
}
}
struct ArcShape2 : Shape {
let geometry: GeometryProxy
func path(in rect: CGRect) -> Path {
var p = Path()
let center = CGPoint(x: geometry.size.width / 4.5, y: -geometry.size.height * 1.70)
p.addArc(center: center, radius: geometry.size.height * 2.4, startAngle: .degrees(35), endAngle: .degrees(149), clockwise: false)
return p
}
}
现在看起来像这样:
这就是以前没有VStack而是只有ZStack的样子:
如何使它看起来像上一张照片?