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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk2OTQ4MTgsIm5iZiI6MTcxOTY5NDUxOCwicGF0aCI6Ii8zMzAwMTA1Ny8yOTM4NTM2NjMtODU5NzMzYjEtOTQ0ZS00NmY3LWJmZDAtNGI0NzFjMDFjMGY0LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI5VDIwNTUxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU1Y2QwNDhjZjVhZjI1M2RmOTU2ZDMwODFiYzNlZmMzN2I0ODIyMTk1YzdmMjE2NTVhZmY3NjExOGQ1ZGZmMTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.jp6DtZh6cpSMA2FMdsjvBTm_lfE5RH4ath2mM5n09so)
.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)
}
}
}