Si cambio la región en setRegion
por MKMapView
, ¿hay alguna manera de establecer la velocidad o la duración de esa animación? Revisé la documentación y los Googles, pero no encontré nada.velocidad de setRegion para MKMapView
6
A
Respuesta
5
que fue capaz de establecer la duración de la setRegion
animación mediante la edición de la respuesta a la pregunta - Setting the zoom level for a MKMapView - de la siguiente manera:
#import <MapKit/MapKit.h>
@interface MKMapView (ZoomLevel)
- (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate
zoomLevel:(NSUInteger)zoomLevel
animated:(BOOL)animated;
@end
#import "MKMapView+ZoomLevel.h"
@implementation MKMapView (ZoomLevel)
#define ANIMATION_DURATION 0.5
- (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate
zoomLevel:(NSUInteger)zoomLevel animated:(BOOL)animated {
MKCoordinateSpan span = MKCoordinateSpanMake(0, 360/pow(2,zoomLevel)*self.frame.size.width/256);
[MKMapView animateWithDuration:ANIMATION_DURATION animations:^{
[self setRegion:MKCoordinateRegionMake(centerCoordinate, span) animated:YES];
}];
}
+0
buen trabajo. ¡Gracias! – boraseoksoon
11
Y aquí es una herramienta fácil de utilizar la extensión Swift en caso de que alguien se topa con esto en el futuro
import MapKit
extension MKMapView {
func animatedZoom(zoomRegion zoomRegion:MKCoordinateRegion, duration:NSTimeInterval) {
MKMapView.animateWithDuration(duration, delay: 0, usingSpringWithDamping: 0.6, initialSpringVelocity: 10, options: UIViewAnimationOptions.CurveEaseIn, animations: {
self.setRegion(zoomRegion, animated: true)
}, completion: nil)
}
}
UPD: Swift versión 3
extension MKMapView {
func animatedZoom(zoomRegion:MKCoordinateRegion, duration:TimeInterval) {
MKMapView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: 0.6, initialSpringVelocity: 10, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.setRegion(zoomRegion, animated: true)
}, completion: nil)
}
}
+0
¡La solución perfecta! ¡Gracias! – beseder
Cuestiones relacionadas
- 1. MKMapView setRegion "ajusta" a niveles de zoom predefinidos?
- 2. ¿Cómo puedo saber cuándo ha finalizado MKMapview setRegion: animated:?
- 3. MKMapView refresh after pin moves
- 4. iOS - MKMapView - Anotaciones pueden arrastrar
- 5. MKMapView Zoom y región
- 6. Force MKMapView viewForAnnotation para actualizar
- 7. MKMapView Mostrar Guardados incorrectamente región
- 8. ¿Cómo puedo saber cuándo el evento de cambio de región en MKMapView es programático o el arrastre del usuario de MKMapView?
- 9. MKMapView ruta/
- 10. MKMapView mapTypes
- 11. MKMapView, animateDrop?
- 12. Esquinas redondeadas de MKMapView
- 13. Scrum: productos inacabados y velocidad de velocidad
- 14. Restringir el desplazamiento de MKMapView
- 15. ¿Cómo crear un MKMapView?
- 16. Seguimiento del centroCoordinación de MKMapView
- 17. Eficiencia/velocidad para funciones trigonométricas
- 18. Experiencia con MKMapView Rotación
- 19. MKMapView aplicación se bloquea cuando controlador de vista aparecido
- 20. error posible en MKMapView
- 21. Región del conjunto MKMapView
- 22. Plugin de editor de velocidad para Eclipse?
- 23. Limitación de velocidad para controladores de rieles
- 24. Prueba de tipeo de velocidad para programadores
- 25. Código de optimización para MKMapView - Gran cantidad de anotaciones
- 26. UIPanGestureRecognizer en MKMapView?
- 27. MKMapView con la dirección
- 28. MKMapView estrellarse con EXC_BAD_ACCESS
- 29. Mover MKCircle en MKMapView
- 30. Animación de pin personalizado - MKMapView
No, no es posible cambiarlos. –
Ha comprobado esto: [Controlando la velocidad de animación de MKMapView en iOS6] (http://stackoverflow.com/questions/12785529/controlling-the-animation-speed-of-mkmapview-in-ios6) – theaob