SwiftUI scrollview под панелью навигации при вращении - PullRequest
0 голосов
/ 28 мая 2020

После борьбы с GeometryReader, в этом посте , я продвинулся благодаря помощи @ Asperi.

Но теперь у меня есть другая проблема, не связанная с GeometryReader: когда я включаю устройство в альбомную ориентацию, в верхней части Scrollview отображается под панелью навигации :

enter image description here Похоже на довольно странное поведение c, но знает ли кто-нибудь о верное решение для этого? (Проверено на физическом iPad Pro 11 и iPhone X)

Вот код (изменен из исходного сообщения с использованием примечаний Аспери)


struct ContentView: View {

    let arrayWithStuff = [ "one","two","three","four","five","six","seven","eight","nine","ten", "eleven", "twelve"]

    var body: some View {

    let myString = "Top of Test App"

     return   ZStack {
        GeometryReader { g in
            NavigationView {
                ScrollView {
                    VStack {
                        Text(myString)
                            .padding()
                            .background(Color.blue)
                    Divider()
                        self.ViewBody(inputHeight: g.size.height)
                } // END of Vstack
                    .navigationBarTitle("Test App", displayMode: .inline)
                } // END of Scrollview
                    .background(Color.clear)
                }//End of NavigationView
                    .background(Color.clear)
                    .navigationViewStyle(StackNavigationViewStyle())
                } // End of Geometry reader
            } // End of Zstack

  } // End of body


    func ViewBody(inputHeight: CGFloat) -> some View {
        print("height of view : \(inputHeight)")
        return VStack {
            List {
                ForEach (self.arrayWithStuff, id: \.self) { item in
                    Text(item) }
            } // END of List
                .frame(height: inputHeight*0.5)
                .background(Color.pink)
            Divider()
            Text("Bottom of TEST APP")
                .background(Color.orange)
        }
        .padding()
    }
}

С уважением,

...