diff options
Diffstat (limited to 'Hotline/Utility/ObservableScrollView.swift')
| -rw-r--r-- | Hotline/Utility/ObservableScrollView.swift | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/Hotline/Utility/ObservableScrollView.swift b/Hotline/Utility/ObservableScrollView.swift index a6f46cc..05688f1 100644 --- a/Hotline/Utility/ObservableScrollView.swift +++ b/Hotline/Utility/ObservableScrollView.swift @@ -8,27 +8,31 @@ struct ScrollViewOffsetPreferenceKey: PreferenceKey { } } -struct ObservableScrollView<Content>: View where Content : View { +struct ObservableScrollView<Content>: View where Content: View { @Namespace var scrollSpace @Binding var scrollOffset: CGFloat let content: () -> Content - - init(scrollOffset: Binding<CGFloat>, - @ViewBuilder content: @escaping () -> Content) { + + init( + scrollOffset: Binding<CGFloat>, + @ViewBuilder content: @escaping () -> Content + ) { _scrollOffset = scrollOffset self.content = content } - + var body: some View { ScrollView { content() - .background(GeometryReader { geo in - let offset = -geo.frame(in: .named(scrollSpace)).minY - Color.clear - .preference(key: ScrollViewOffsetPreferenceKey.self, - value: offset) - }) - + .background( + GeometryReader { geo in + let offset = -geo.frame(in: .named(scrollSpace)).minY + Color.clear + .preference( + key: ScrollViewOffsetPreferenceKey.self, + value: offset) + }) + } .coordinateSpace(name: scrollSpace) .onPreferenceChange(ScrollViewOffsetPreferenceKey.self) { value in |