はじめに
今回はSwiftUIを使って良くある初期選択が可能なスクロールタブを実装していきます
コード
// 該当位置までスクロールさせるにはScrollViewReaderが必要
ScrollViewReader { scroll in
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 8) {
ForEach(0..<viewModel.tabs.count, id: \.self) { index in
let tab = viewModel.tabs[index]
segmentItem(title: tab.title, isSelected: viewModel.isSelected(index: index))
.id(index)
.onTapGesture {
// タップ処理
}
.padding(.horizontal)
}
// 生成時に選択済みの箇所までスクロールさせる
// anchorはどこまでスクロールさせるかの選択
.onAppear {
scroll.scrollTo(viewModel.selectedIndex, anchor: .leading)
}
}
最後に
意外と使う機会が多いので、備忘録的に残してみました
どなたかのお役に立てれば幸いです