Skip to content

Commit f4e1f0e

Browse files
author
Trent Guillory
committed
Added readme and removed some comments.
1 parent 6011389 commit f4e1f0e

File tree

5 files changed

+30
-13
lines changed

5 files changed

+30
-13
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,24 @@
33
A replacement `ScrollView` that provides a header with subtle scroll animations.
44

55
Using `ScrollViewReactiveHeader` is easy:
6+
7+
```swift
8+
ScrollViewReactiveHeader(header: {
9+
10+
MyHeaderBackground()
11+
.frame(height: 300)
12+
}, headerOverlay: {
13+
14+
MyHeaderContent()
15+
.frame(height: 300)
16+
}, body: {
17+
18+
// Note: This view will be placed inside a ScrollView
19+
MyScrollingContentView()
20+
}, configuration: .init(showStatusBar: true, backgroundColor: .white))
21+
```
22+
23+
## Future Todos
24+
25+
- [ ] Make `headerOverlay` interactive. At the moment, taps will be interecepted by the overlaid `ScrollView`
26+
- [ ] Add optional callback that reports internally-calculated scroll offset.

ScrollViewReactiveHeaderDemoApp/Sources/Example2/SpotifyView.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ struct SpotifyView: View {
77
var body: some View {
88

99
SpotifyHomeView(sections: NetworkManager.shared.fetchHomeScreen())
10-
.edgesIgnoringSafeArea(.top)
1110
}
1211
}
1312

ScrollViewReactiveHeaderDemoApp/Sources/Example2/Views/AlbumScroll.swift

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
1-
//
2-
// AlbumScroll.swift
3-
// SpotifyClone
4-
//
5-
// Created by Trent Guillory on 10/31/20.
6-
//
7-
81
import SwiftUI
92

3+
// MARK: - AlbumScroll
4+
105
struct AlbumScroll: View {
116
@State var section: HomeViewSection
12-
7+
138
// add this later too (add spacing elements)
149
@State var hPadding: CGFloat
15-
10+
1611
var body: some View {
1712
VStack(alignment: .leading) {
1813
HomeSectionHeader(header: section.title, hPadding: hPadding)
@@ -29,6 +24,8 @@ struct AlbumScroll: View {
2924
}
3025
}
3126

27+
// MARK: - AlbumScroll_Previews
28+
3229
struct AlbumScroll_Previews: PreviewProvider {
3330
static var previews: some View {
3431
AlbumScroll(section: NetworkManager.shared.fetchHomeScreen().first!, hPadding: 24)

ScrollViewReactiveHeaderDemoApp/Sources/Example2/Views/HomeHeaderView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ struct HomeHeaderView: View {
99
@Binding var scrollOffset: CGFloat
1010

1111
var opacity: Double {
12-
print(Double(1 + scrollOffset * 0.01))
12+
1313
return Double(1 + scrollOffset * 0.01)
1414
}
1515

Sources/ScrollViewReactiveHeader.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public struct ScrollViewReactiveHeader<A, B, C>: View where A: View, B: View, C:
3030
.offset(x: .zero, y: headerOffset)
3131
.scaleEffect(headerScale)
3232
.opacity(Double(headerOpacity))
33+
// Workaround to cover safe are without .edgesIgnoringSafeArea
34+
.background(backgroundColor.offset(x: 0, y: -topSafeArea * 2))
3335

3436
VStack(content: headerOverlay)
3537

@@ -128,8 +130,6 @@ public struct ScrollViewReactiveHeader<A, B, C>: View where A: View, B: View, C:
128130

129131
let scrollOffset = offset + headerOffset
130132

131-
print(scrollOffset)
132-
133133
switch scrollOffset {
134134

135135
case topSafeArea ... topSafeArea + 20: statusBarOpacity = Double(-scrollOffset / 100.0)

0 commit comments

Comments
 (0)