iOS:应用CATransform3DRotate和CATransform3DScale对MKMapView没有预期的效果

时间:2014-12-27 12:00:12

标签: ios mkmapview mapkit catransform3d catransform3drotate

在我的应用程序设计中,我想显示倾斜的地图(就像Apple 3D地图一样,但在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 个答案:

没有答案