3

更新

Apple 修复了这是 iOS 7。公开发布后的更多信息。


所以,我有这段代码:

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
    CGAffineTransform transform = CGAffineTransformMakeRotation(degToRad([newHeading trueHeading]));
    [mapView setTransform: transform];
}

它可以精美地渲染定向旋转的地图,如下所示:

在此处输入图像描述

问题是,标签都是颠倒的。现在,我很确定可以解决这个问题,因为我相信 Apple 在 iOS 6 主题演讲中吹捧了旋转标签的能力。我只是不知道如何。

为了比较,我想要的效果,在股票地图应用程序中实现:

在此处输入图像描述

TL;博士

如何旋转地图,但保持标签正面朝上?或者至少独立于地图旋转标签?

4

1 回答 1

3

在地图上应用变换并不是应用用户航向旋转的正确方法。比喻地说,您正在旋转整个画布而不是画布上的元素。

您要做的是调用:( [mapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES]; 例如在您的 viewDid/WillAppear 方法或某些 IBAction 触发方法中。

您可以在这里阅读更多相关信息: http: //developer.apple.com/library/ios/documentation/MapKit/Reference/MKMapView_Class/MKMapView/MKMapView.html#//apple_ref/occ/instm/MKMapView/setUserTrackingMode :animated :

通过调用上述方法,您可以告诉地图视图开始更新航向(旋转)。然后标签旋转将自动调整。

于 2012-10-28T19:49:32.760 回答