GeometryReader 를 사용하면 가능하다.
우리는 뷰의 포지션을 읽어올 것이다. 유저가 스크롤하는동안.
아래의 패키지를 활용해 보자
먼저 패키지를 설치하고 임포트해주자.
import SwiftUITrackableScrollView
Swift
복사
그 다음 초기값을 상태변수로 선언해주자.
@State private var scrollViewContentOffset = CGFloat(0)
Swift
복사
스크롤하는 포지선을 추적가능한 스크롤뷰를 생성해준다
var body: some View {
TrackableScrollView(.vertical, showIndicators: false, contentOffset: $scrollViewContentOffset) {
}
}
Swift
복사
이때, 인자로 currentOffset 아 위에서 선언한 상태변수를 넣어주자 ( 값이 바뀔 때마다 이를 앱이 인지하고 변경하기위해서)
onChange 메서드를 사용해 스크롤에 따른 액션이나 애니메이션을 추가한다.
@State private var scrollViewContentOffset = CGFloat(0)
var body: some View {
TrackableScrollView(.vertical, showIndicators: false, contentOffset: $scrollViewContentOffset) {
Text("\(scrollViewContentOffset)")
.onChange(of: scrollViewContentOffset, perform: { value in
print("scrollViewContentOffset", scrollViewContentOffset)
// Do something
})
}
}
Swift
복사