引入VStack时,几何读取器更改了布局-SwiftUI

时间:2020-05-21 18:30:42

标签: swift swiftui

我最近将设计放入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
    }
    }

现在看起来像这样:

enter image description here

这就是以前没有VStack而是只有ZStack的样子:

enter image description here

如何使它看起来像上一张照片?

0 个答案:

没有答案