3

アップデート

Apple はこれを修正しました。これは iOS 7 です。詳細は一般公開後にお知らせします。


だから、私はこのビットのコードを持っています:

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

次のように、方向に回転したマップを美しくレンダリングします。

ここに画像の説明を入力

問題は、ラベルがすべて逆さまになっていることです。Apple が iOS 6 の基調講演でラベルをローテーションする機能を宣伝したと思うので、これを回避できると確信しています。方法がわかりません。

比較のために、ストックマップアプリに実装されているように、私が望む効果は次のとおりです。

ここに画像の説明を入力

TL;DR

地図を回転させて、ラベルを正しい向きに保つにはどうすればよいですか? または、少なくともマップとは別にラベルを回転させますか?

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