1

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マップでは単に不可能ですか?

4

1 に答える 1

1

MapView を画面サイズよりもはるかに大きくして、回転時に周囲が見えないようにするのはどうですか?

于 2012-10-03T20:53:23.087 に答える