iphone - para - como girar un video en windows
¿Cómo rotar MKMapView y mantener la Anotación y la vista no rotar? (2)
Todas las anotaciones y las leyendas que se muestran en una MKMapView son subvistas de MKMapView, por lo que si gira la vista de contenedor, todas sus subvistas también se rotarán.
Estoy haciendo un MKMapView que muestra la ubicación actual del usuario. Quiero rotar el mapa como la aplicación Google Maps sin girar las anotaciones. Estoy usando el siguiente código
-(void) locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{
mapView.transform=CGAffineTransformMakeRotation(-1*newHeading.magneticHeading*3.14159/180)};
pero toda la vista se gira como esta imagen. La imagen del problema en mi aplicación
Básicamente, necesitas aplicar una misma transformación a todas las vistas de anotación pero con un ángulo negativo, es decir,
for (id<MKAnnotation> annotation in mapView.annotations)
{
MKAnnotationView* annotationView = [mapView viewForAnnotation:annotation];
[annotationView setTransform:CGAffineTransformMakeRotation(-angle)];
}
Si planea agregar más anotaciones, debe colocar el mismo código en mapView:didAddAnnotationViews:
también:
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
for (MKAnnotationView* annotationView in views)
{
[annotationView setTransform:CGAffineTransformMakeRotation(-angle)];
}
}