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;
           }];
        }
    }];
}

0 ответов

Другие вопросы по тегам