2

嗨,我正在使用 iPhone 中的地图。我正在旋转带有方向的地图视图。地图正在旋转,但移动不顺畅。

我正在使用下面的代码来旋转地图。谁能告诉我有关顺利旋转地图视图的任何建议?

float oldRad =  -manager.heading.trueHeading * M_PI / 180.0f;
float newRad =  -newHeading.trueHeading * M_PI / 180.0f;
CABasicAnimation *theAnimation;
theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.rotation"];
theAnimation.fromValue = [NSNumber numberWithFloat:oldRad];
theAnimation.toValue=[NSNumber numberWithFloat:newRad];
theAnimation.duration = 0.5f;
[mapView setTransform:CGAffineTransformMakeRotation(newRad)];
CGPoint anchorPoint = CGPointMake(0, 0);
[[mapView annotations] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) 
 {
     MKAnnotationView * view = [mapView viewForAnnotation:obj];

     [view setTransform:CGAffineTransformMakeRotation(newRad)];
     [view setCenterOffset:CGPointApplyAffineTransform(anchorPoint, CGAffineTransformMakeRotation(newRad))];

 }];
4

1 回答 1

0

在 iOS 5.0 及更高版本中,您可以使用

[mapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES];

查看MKMapView 的文档,特别是跟踪用户位置部分以获取更多信息。

但是,如果您仍想支持旧版本的 iOS,您将不得不经历解决这些故障和错误的所有痛苦。我自己做过(在 iOS 5 出来之前),相信我,你最好放弃对 iOS 4 的支持。

于 2012-12-01T14:18:03.013 回答