🐙
SwiftUIのPickerで選択肢が選べない/スクロールが適切にできない
かなり時間を費やして原因がわかったので、メモ.
ググっても全く出なかったので、原因がわかるまでだいぶ彷徨った...
症状 / Problem
SwiftUIのPickerの選択肢がなぜか実機だと
- 適切に選択できず
- スクロールもできず
- 選択しても値が変わらない
と全く動かない状態.
(The options in SwiftUI’s Picker cannot be selected properly on the actual device, cannot be scrolled, and the value does not change even when selected.)
原因 / Cause
不確かではあるが、おそらく下記
おそらくの原因 / Main Cause
@StateObject private var viewModel = ViewModel()
上記のViewModelの中で頻繁にCapture画像を取り込んで、画像処理をしている.
ViewModelの中ではPublishedの変数が多く、高頻度で更新されている.
この更新が行われていることで、PickerのMenuの選択肢がキャンセルされている様子.
対策
Pickerが表示される時は、上記の更新を停止させる。
Discussion