После борьбы с GeometryReader, в этом посте , я продвинулся благодаря помощи @ Asperi.
Но теперь у меня есть другая проблема, не связанная с GeometryReader: когда я включаю устройство в альбомную ориентацию, в верхней части Scrollview отображается под панелью навигации :
Похоже на довольно странное поведение 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()
}
}
С уважением,