В настоящее время существует ошибка (или предполагаемый эффект), когда вы не можете определить или установить переменные внутри GeometryReader
. В качестве обходного пути вы можете определить функцию, которая вместо этого обрабатывает операцию, например:
import SwiftUI
struct ContentView: View {
@State var parralaxOffset: CGFloat = 0
func handleParralax(_ reader: GeometryProxy) -> some View {
self.parralaxOffset = reader.frame(in: .global).minY
return Text("Foreground contentOffset: \(reader.frame(in: .global).minY)")
}
var body: some View {
ZStack {
ScrollView {
Text("Background")
}.offset(x: 0, y: parralaxOffset)
ScrollView {
GeometryReader { reader in
self.handleParralax(reader)
}
}
}
}
}