Add FramePreferenceKey for use in ViewFrameReader.

This commit is contained in:
Doug
2021-10-11 12:18:10 +01:00
parent dce1a4203d
commit 5ce26e36ab
3 changed files with 35 additions and 5 deletions
@@ -31,11 +31,13 @@ struct ViewFrameReader: View {
@Binding var frame: CGRect
var body: some View {
GeometryReader { geo -> Color in
DispatchQueue.main.async {
frame = geo.frame(in: .local)
}
return .clear
GeometryReader { geometry in
Color.clear
.preference(key: FramePreferenceKey.self,
value: geometry.frame(in: .local))
}
.onPreferenceChange(FramePreferenceKey.self) {
frame = $0
}
}
}