問題
ForEachを持つScrollView内で、Viewが追加されるたびに、最下部へ自動スクロールしてほしいと思いました。この記事はその備忘録として残します。
解決策
ScrollViewReader { proxy in
ScrollView {
ForEach(array, id: \.self) {string in
Text(string)
}
Color.clear.id(array.count)
}
.onChange(of: array) { _ in
withAnimation {
proxy.scrollTo(array.count)
}
}
}
ScrollViewReader
内でScrollViewを宣言し、arrayの変化に応じてColor.clear
までスクロールさせます。
動作イメージ
開発環境
- Xcode 14.2
- iOS 16 and later