2014-12-22 2 views
1

Я новичок в mapkit и стараюсь добавить «скользящее/скользящее и масштабирование в эффект перехода типа», которое я довольно часто вижу в таких приложениях для карт MkMapView.mapkit map view slide для скольжения и увеличения эффекта?

Например, я мог бы искать, перемещаться и масштабировать карту с помощью сенсорного экрана и масштабирования, а затем нажимать «перейти в мое местоположение», например, тогда он будет скользить/скользить, а затем приближаться к моему местоположению, размер области/вида, который я установил, как эффект перехода, я думаю, вы могли бы назвать это. Как это делается? Есть ли способ для этого или вам нужно запрограммировать этот эффект вручную?

В настоящее время я нажимаю кнопку «Перейти к моему местоположению», и она переходит к моему текущему местоположению, а размер - к тому, что я хочу, но нет скользящего/скольжения/масштабирования в эффекте типа перехода. Любой помощи будет большой

- (IBAction)zoomToCurrentLocation:(id)sender { 

    float spanX = 0.00725; 
    float spanY = 0.00725; 

    MKCoordinateRegion region; 
    region.center.latitude = self.mapView.userLocation.coordinate.latitude; 
    region.center.longitude = self.mapView.userLocation.coordinate.longitude; 
    region.span.latitudeDelta = spanX; 
    region.span.longitudeDelta = spanY; 

    [self.mapView setRegion:region animated:YES]; 

} 

ответ

0

Animation последовательность будет выглядеть так:

В этом первом блоке анимации будет слайда/скользит карты указанного места (скажем, местоположение пользователя).

А затем в блоке завершения:

Другая анимация будет увеличения/уменьшения масштаба к вашему положению. Измените значения, соответствующие вашим потребностям.

- (void) showUserLocation { 
    [UIView animateWithDuration:1.5 animations:^{ 

     [self.mapView setCenterCoordinate:self.mapView.userLocation.coordinate]; 

    } completion:^(BOOL finished) { 
     [UIView animateWithDuration:1.5 animations:^{ 
      MKCoordinateSpan span; 
      span.latitudeDelta = 1; 
      span.longitudeDelta = 1; 

      MKCoordinateRegion region; 
      region.span = span; 
      region.center = self.mapView.userLocation.coordinate; 
      [self.mapView setRegion:region animated:YES]; 
     }]; 
    }]; 
} 
+0

классный спасибо @ Kampai, который дал мне уменьшение вниз в эффект анимационного типа, после которого я был, но не горизонтальный/вертикальный слайд в его часть. Например. Скажем, мой MapView показывает Китай, и мое текущее местоположение находится в США. Я бы хотел, чтобы представление скользило из Китая в США, а затем уменьшило масштаб, как то, что вы предоставили, и т. Д. Как мне сделать этот первый бит? – TF35Lightning

+0

Я попробовал отредактированный код @ Kampai, но не повезло, он все еще просто прыгает прямо в местоположение пользователя (нет слайда карты от эффекта «Страна к стране» и т. Д.), Он начинается с уровня Zoomed in, а затем после animateWithDuration: 1,5 масштабируется в страну region view – TF35Lightning

+0

Я добавил еще один блок анимации, чтобы показать анимацию для уменьшения масштаба, и я пробовал этот код, он отлично работает. Убедитесь, что перед вызовом этого метода вы не указали значение области или диапазона для карты (вам не нужно), когда вы вызываете этот метод. – Kampai