ScrollView scrollt in Kombination mit Geometry Reader nicht richtig (springt)
Nov 11 2020
Ich habe die Antwort hier bereits überprüft ( ScrollView scrollt nicht mit Geometry Reader als Kind ), was meiner Meinung nach ziemlich ähnlich ist, aber ich konnte es nicht herausfinden.
Mein Ziel ist es, die Bilder gleich groß (quadratisch) zu zeigen.
Hier ist meine Ansicht:
struct MyGeoView: View {
let icons = ["bed.double.fill","tram.fill","tv.music.note.fill","hare.fill", "person", "clock", "plus", "trash", "home", "arrow", "pencil", "scribble", "folder", "folder.circle", "trash.circle", "paperplane"]
var body: some View {
GeometryReader{ geo in
ScrollView{
GeometryReader{ geo in
LazyVGrid(columns: Array(repeating: GridItem(.flexible()), count: 3), spacing: 3 ){
ForEach(icons, id: \.self){ post in
Image(systemName: post)
.frame(width: geo.size.width/3, height: geo.size.width/3)
.background(Color.pink)
.foregroundColor(.white)
}
}
}
}
}
}
}
Leider scrollt es nicht richtig (springt) und geht immer wieder nach oben. Hast du ein paar ideen
Vielen Dank!
Antworten
Asperi Nov 11 2020 at 21:00
Sie brauchen nur eine GeometryReaderexterne.
Hier ist Code korrigiert. Getestet mit Xcode 12.1 / iOS 14.1
var body: some View {
GeometryReader{ geo in
ScrollView{
LazyVGrid(columns: Array(repeating: GridItem(.flexible()), count: 3), spacing: 3 ){
ForEach(icons, id: \.self){ post in
Image(systemName: post)
.frame(width: geo.size.width/3, height: geo.size.width/3)
.background(Color.pink)
.foregroundColor(.white)
}
}
}
}
}