Действие SwiftUI при нажатии на аннотацию карты - PullRequest
1 голос
/ 28 мая 2020

При нажатии на конкретную аннотацию c в MapView я добавляю sh наложения с информацией об аннотации.

Я ищу возможность обновить переменную, а затем вызвать updateUIView (), чтобы на карте отображалось наложение, соответствующее аннотации, по которой щелкнули.

1 Ответ

0 голосов
/ 04 сентября 2020

Сделать это можно так:

let places: [Place] = [
    .init(name: "One", coordinate: .init(latitude: 56.951924, longitude: 24.125584)),
    .init(name: "Two", coordinate: .init(latitude:  56.967520, longitude: 24.105760)),
    .init(name: "Five", coordinate: .init(latitude: 56.9539906, longitude: 24.13649290000000))
]

@State var coordinateRegion = MKCoordinateRegion(center: .init(latitude: 54.6872, longitude: 25.2797), latitudinalMeters: 2000000, longitudinalMeters: 2000000)

var body: some View {
    Map(coordinateRegion: $coordinateRegion, annotationItems: places) { (place) in
        MapAnnotation(coordinate: place.coordinate) {
            Button(action: { print(place.name) }, label: {
                Text(place.name)
            })
        }
    }
}
...