0

私たちのアプリには、コンパスの見出しに合わせて回転するマップ ビューがあります。吹き出しが読み取り用に水平のままになるように、注釈を反対方向に回転させます。これは iOS5 デバイスでは問題なく動作しますが、iOS6 では機能しません (iOS5 デバイスで使用されるのと同じバイナリと、iOS6 SDK でビルドされたバイナリで問題が発生します)。注釈は、最初は正しい水平位置に回転し、しばらくすると、修正されていない回転に戻ります。これを引き起こしているイベントは確認できません。これは、(MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id )annotation で使用しているコード スニペットです。

CATransform3D transformZ = CATransform3DIdentity;
transformZ = CATransform3DRotate(transformZ, _rotationZ, 0, 0, 1);
annotation.myView.layer.transform = transformZ;

他の誰かがこれを見て、iOS6で修正する方法について何か提案を受けましたか?

4

1 に答える 1

3

I had an identical problem so my workaround may work for you. I've also submitted a bug to Apple on it. For me, every time the map got panned by the user the Annotations would get "unrotated".

In my code I set the rotations using CGAffineTransformMakeRotation and I don't set it in viewForAnnotation but whenever the users location get's updated. So that is a bit different than you.

My workaround was to add an additional minor rotation at the bottom of my viewForAnnotation method.

if(is6orMore) {
        [annView setTransform:CGAffineTransformMakeRotation(.001)]; //iOS6 BUG WORKAROUND !!!!!!!
 }

So for you, I'm not sure if that works, since you are rotating differently and doing it in viewForAnnotation. But give it a try.

Took me forever to find and I just happened across this fix.

于 2012-10-05T20:06:46.523 に答える