У меня есть MKMapView
с MKUserTrackingBarButtonItem
. Текущее местоположение пользователя должно отображаться только в режимах Follow
или FollowWithHeading
. Реализация выглядит так:
- (void)mapView:(MKMapView *)mapView
didChangeUserTrackingMode:(MKUserTrackingMode)mode
animated:(BOOL)animated
{
[mapView setShowsUserLocation:(mode != MKUserTrackingModeNone)];
}
Это единственное место в моем коде, где вызывается setShowsUserLocation
, и оно работает, как и ожидалось, когда нажата MKUserTrackingBarButtonItem
.
Моя проблема возникает при изменении UserTrackingMode
путем перетаскивания карты: в этом случае аннотация «синяя точка» исчезает, как и предполагалось, но примерно в 20% случаев она появляется после завершения перетаскивания.
Если я затем проверяю свойство карты showsUserLocation
, оно всегда имеет значение NO, даже если заметка «синяя точка» видна.
Буду очень признателен за помощь, если вы знаете, как решить эту проблему.