A customized ScrollView can add item transition when scrolling.
Support iOS 14+, macOS 11+
![demo](https://private-user-images.githubusercontent.com/33001057/293853663-859733b1-944e-46f7-bfd0-4b471c01c0f4.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MDUyMjYsIm5iZiI6MTczOTkwNDkyNiwicGF0aCI6Ii8zMzAwMTA1Ny8yOTM4NTM2NjMtODU5NzMzYjEtOTQ0ZS00NmY3LWJmZDAtNGI0NzFjMDFjMGY0LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDE4NTUyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFmZDQ4NjljMDM3Y2VmZGJkYjM2NjE0ODcyMGUyYmZkNjYyYWY2ZWYxNzdkMjI2Yjk1OTdkODBlMjA4MzlkZTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.OJl4CBxWGB6yq-1w3XXJ_fQs-woIKJXfU7AVRTMQnCA)
.package(url: "https://github.com/lewislee922/AnimatedScrollView.git", from: "1.0.6")
Then import AnimatedScrollView
in any Swift file in your module.
struct YourView: View {
private let hashableArray = (0..<100).map { index in
"\(index)"
}
var body: some View {
AnimatedScrollView(items: hashableArray) { item, transitionState in
Text(item)
.font(.title)
.opacity(1-transitionState)
.scaleEffect(1-transitionState)
}
}
}