MKMapView
のレイヤーにドロップシャドウを追加しようとすると問題が発生します。シャドウを表示するには、ビューのclipsToBounds
プロパティをfalseに設定する必要があります。ただし、そうすると、マップタイルがビューの境界の外側に描画され、シャドウが重なり、ビューの一部が切り取られます。結果は次のようになります。
境界のクリッピングを無効にせずにドロップシャドウを描画する方法や、この醜い視覚的なバグなしにドロップシャドウを表示する方法があるかどうか疑問に思っています。ドロップシャドウを設定するための私のコードは次のようになります。
self.mapView.layer.borderWidth = 5.0;
self.mapView.layer.borderColor = [[UIColor whiteColor] CGColor];
self.mapView.layer.shadowOffset = CGSizeMake(0.0, 0.0);
self.mapView.layer.shadowColor = [[UIColor blackColor] CGColor];
self.mapView.layer.shadowRadius = 5.0;
self.mapView.layer.shadowOpacity = 0.2;
self.mapView.clipsToBounds = NO;