はじめに
チャット画面の実装する際にScrollViewを使うことになると思いますが、
開いた時は最新のチャットが表示されてないといけません。
最新のチャットは1番下にあるのでScrollViewを1番下からはじめたいです。
その方法を記録しておきます。
サンプルアプリ
実装
ScrollView内の1番下の要素のidにproxy.scrollTo()
で移動します
import SwiftUI
struct ContentView: View {
var body: some View {
ScrollView {
ScrollViewReader { proxy in
VStack(spacing: 10) {
ForEach(0..<50) { index in
RoundedRectangle(cornerRadius: 10)
.frame(maxWidth: .infinity)
.frame(height: 100)
.foregroundStyle(Color(red: .random(in: 0...1), green: .random(in: 0...1), blue: .random(in: 0...1)))
.id(index)
}
}
.padding(16)
.onAppear {
proxy.scrollTo(49)
}
}
}
}
}
おわり
意外と簡単にできました