前提・実現したいこと
swift初学者です.
MapViewのupdateUIView上でswitch文を使い,画面上の押したボタンによってマップの拡大や縮小,現在地を画面の中心にするなどの処理をしています.switch文で判定している変数(bindingしています.)がMapView側で更新されず,同じ処理がループしてしまい,画面が固定されるような状態になってしまいます.
何か良い解決方法はないでしょうか?
考えられる要因
・画面を動かすたびに画面の中心の緯度,経度を常に更新しているため(?)
class Coordinator: NSObject, MKMapViewDelegate { var controll : MapView init(_ controll : MapView) { self.controll = controll } //ここで画面の中心の緯度,経度を渡している func mapViewDidChangeVisibleRegion(_ mapView: MKMapView) { controll.centerCoordinate = mapView.centerCoordinate //ここでも下のエラーメッセージがでる } }
これが要因であるなら一時的に読み取る処理をするべきだと思うのですが,実装方法がわかりません.
発生しているエラーメッセージ
Modifying state during view update, this will cause undefined behavior.
SwiftUI のお作法に従って MapView を更新する必要があるってことだと思いますが、そのソースだけではよく分かりません。
回答1件
あなたの回答
tips
プレビュー