この質問への回答が本当に欲しいですhttps://devforums.apple.com/message/723468。iOS 6に関するものであり、Appleごとに機密情報であるため、詳細を投稿できません。
回答/コメントをAppleDevフォーラムの投稿に投稿して、ここで知らせてください。
編集:iOS6が正式にリリースされたので:
私のiOS6以前のコードでは、ユーザーの場所が移動したときに地図を回転させるためにこれを行っています。
//this is in my MKMapViewDelegate
-(void) rotateMap:(MKMapView *)mapViewTmp forLocation:(MKUserLocation *) userLocation {
...
//calculate needed rotation
...
[mapViewTmp setTransform:CGAffineTransformMakeRotation(lastRotation)]; //rotate the MKMapView
for (id<MKAnnotation> annotation in mapViewTmp.annotations) {
MKAnnotationView* annotationView =[mapViewTmp viewForAnnotation:annotation];
[annotationView setTransform:CGAffineTransformMakeRotation(-lastRotation)]; //counter rotate the Annotation Views
[annotationView setNeedsDisplay]; //ios6
}
}
そして、これはうまくいきました(数千人のユーザー)。
ただし、ios6(2012年9月4日にXcode / SDKを更新しました)では、注釈ビューはこの回転を維持しません(たとえば、マップがパンされている場合)。それらは回転していない状態に戻ります(これは、私のマップが回転しているため、テキストが水平ではなく角度で表示されることを意味します)。
コードは一時的に注釈を回転させてテキストを水平に表示しますが、マップがパンされている場合(および他の原因のように見える場合)、注釈は回転されていない状態に反転し、注釈テキストは回転した地図。
iOS6で回転したままになるようにMKAnnotationViewを回転させる正しい方法は何ですか?変更の原因となったMKMapViewの変更点は何ですか?