SwiftUI Map() делегирует доступ

#swiftui #mapkit

#swiftui #mapkit

Вопрос:

Я пытаюсь реорганизовать приложение SwiftUI.

Из: iuviewпредставляемый из MapView в: собственное представление SwiftUI Map().

Однако мое приложение должно иметь возможность реагировать на панорамирование и масштабирование пользователя. В моей uiviewпредставляемой версии я добавил протокол MKMapViewDelagate в класс Coordinator и создал MapView(_ MapView:regionDidChangeAnimated)

Как можно назначить класс делегата для собственной версии SwiftUI для достижения этой цели?

Я видел, что в некоторых сообщениях используется метод init() для настройки внешнего вида карты с помощью MKMapView.appearance(). Оказывается, у этого есть свойство делегата, но назначение делегата здесь не приводит к mapView:regionDidChangeAnimated вызову метода…

Ответ №1:

Поскольку Map() принимает привязку к региону, вы можете использовать .onChange для реагирования на изменение региона.