没有倒置标签的旋转MKMapView

时间:2012-10-27 02:27:29

标签: objective-c ios6 mkmapview mapkit cgaffinetransform

更新

Apple修复此问题是iOS 7.公开发布后的更多信息。


所以,我有这段代码:

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

精美地呈现定向旋转的地图,如下所示:

enter image description here

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

为了比较,我想要的效果,在库存地图应用中实现:

enter image description here

TL; DR

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

1 个答案:

答案 0 :(得分: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

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