iOS: применение CATransform3DRotate и CATransform3DScale не оказывает желаемого влияния на MKMapView
В своем дизайне приложения я хочу показать наклонную карту (точно так же, как Apple 3D-карта, но также и в pre-iOS 7). Я использую преобразования для достижения этой цели, но результаты не являются удовлетворительными.
Мои аннотации выглядят искаженными (я хочу, чтобы они были прямыми и обращенными к пользователю - не выравнивались с моей картой). Также после применения трансформации моя карта перестает прокручиваться.
- (void) animateMap
{
[UIView animateWithDuration:0.8 animations:
^{
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -1200.0;
transform = CATransform3DRotate(transform, M_PI_4, 1.0, 0.0, 0.0);
CATransform3D transform1 = CATransform3DScale(transform, 1.33, 1.66, 0);
map.layer.transform = transform1;
}
completion:^(BOOL finished)
{
for (id ann in map.annotations)
{
[UIView animateWithDuration:0.8 animations:
^{
MKAnnotationView * annView = [map viewForAnnotation:ann];
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -1200.0;
transform = CATransform3DRotate(transform, -M_PI_4, 1.0, 0.0, 0.0);
annView.layer.transform = transform;
}];
}
}];
}