Вид карты userLocation
обычно не будет доступен сразу после установки showsUserLocation
на ДА.
Реализация методов делегата представления карты didUpdateUserLocation
и didFailToLocateUserWithError
. Вам нужно установить свойство delegate
вида карты, иначе они не будут вызваны. Измените регион или центр карты в методе didUpdateUserLocation
, а не в viewDidLoad.
Или задайте регион в didUpdateToLocation
CLLocationManager, который вы реализовали. Это называется? Также реализуйте его метод didFailWithError
и посмотрите, будет ли он вызван.
Для получения текущего местоположения, если вы используете MKMapView, вам нужно использовать либо showUserLocation, либо CLLocationManager, но не оба одновременно. Но чтобы получить синий мрамор, вам нужно использовать showUserLocation.
Кроме того, почему вы дважды выполняете insertSubview в mapView?