Пользовательские аннотации карты SwiftUI не отображаются постоянно во время панорамирования и масштабирования.
Настраивать:
Мое приложение имеет SwiftUIMap
который может отображать аннотации и местоположение пользователя. Можно панорамировать или масштабировать карту. Вот соответствующая часть моего кода:
struct MapViewSWUI: View {
@Binding var show_map_modal: Bool
@ObservedObject var mapViewModel: MapViewModel
@State private var region: MKCoordinateRegion
// …
var body: some View {
// …
let placesForBuyLocationNames = mapViewModel.placesForBuyLocationNames()
let annotations = placesForBuyLocationNames.map { Annotation(name: $0.name, coordinate: $0.coordinate) }
Map(coordinateRegion: $region,
interactionModes: .all,
showsUserLocation: true,
annotationItems: annotations) { annotation in
MapAnnotation(coordinate: annotation.coordinate, anchorPoint: CGPoint(x: 0.5, y: 1)) {
GeometryReader { geo in
AnnotationView(annotation: annotation,
region: region,
mapViewModel: mapViewModel,
annotationDragged: $annotationDragged)
.onAppear {
mapViewModel.annotationNamesAndOrigins[annotation.name] = geo.frame(in: .global).origin
}
}
.frame(width: 30, height: 30)
}
}
}
Проблема:
Когда отображаются аннотации, а карта панорамируется или масштабируется, местоположение пользователя отображается постоянно во время операции. Однако это не так для пользовательских аннотаций:
Симулятор: Пользовательские аннотации мигают во время операции, как будто они неоднократно удаляются и снова добавляются на карту.
Устройство: Пользовательские аннотации исчезают во время операции. Когда операция завершена, аннотации снова появляются.
Вопрос:
Как мне изменить код, чтобы пользовательские аннотации отображались постоянно, как местоположение пользователя?