iOS6以前は、MKMapViewのサブビューを使用して、ユーザーのGPS方向(見出しではない)に基づいてMKMapViewを回転させていました。それはすべて完璧に機能しました、私は次のようにビューを初期化しました:
mapView = [[MKMapView alloc] init];
mapView.delegate = self;
mapView.clipsToBounds = FALSE;
mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
self.view = mapView;
そして、回転するとき、私は次のことをしました:
UIView *innerMap = [mapView.subviews objectAtIndex:0];
if([innerMap isKindOfClass:[UIView class]])
{
innerMap.transform = CGAffineTransformMakeRotation(degreesToRadians(-lastDegrees));
}
私が言ったように、すべてが完璧に機能しました。マップが回転すると、ビューのフレーム全体に自動的に拡大縮小され、回転によって作成された黒いコーナーが塗りつぶされます。
ただし、新しいiOS6マップは拡大縮小されておらず、隅々まで埋められていません。したがって、回転すると、ビューの半分が失われ、残りの半分が黒(背景色)になります。私は何を試しましたか?
- 新しいMKMapviewのすべての異なるサブビューを試します(また、それらのサイズ変更マスクをマップビューと同じ値に設定します)
- contentmodeをscaleToFillに設定しようとしました(サブビューでも)
- 自動サイズ変更サブビューをtrueに設定しようとしました
- 回転後にフレームをリセットしようとしました
残念ながら、私の試みはすべて効果がありません。どういうわけか、GoogleMapsは自動的に拡大縮小して黒い角を埋めましたが、iOSMapsはそうではありません。それで、私はここで何かを見逃していますか、私が忘れているUIViewのいくつかの素晴らしいプロパティ、またはこれは新しいiOS6マップでは単に不可能ですか?