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 に答える