Swift 单击地图注释时的快捷方式操作
在MapView中单击特定注释时,我希望添加一个包含注释信息的覆盖Swift 单击地图注释时的快捷方式操作,swift,uikit,swiftui,mapkit,Swift,Uikit,Swiftui,Mapkit,在MapView中单击特定注释时,我希望添加一个包含注释信息的覆盖 我要寻找的是能够更新一个变量,然后调用updateUIView(),这样地图就会显示与单击的注释对应的覆盖 您可以这样做: let places: [Place] = [ .init(name: "One", coordinate: .init(latitude: 56.951924, longitude: 24.125584)), .init(name: "Two", c
我要寻找的是能够更新一个变量,然后调用updateUIView(),这样地图就会显示与单击的注释对应的覆盖 您可以这样做:
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)
})
}
}
}
您可以这样做:
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)
})
}
}
}
看这里:看这里: