私もiOS 6
これらのクラスを使用する際に同じ問題に直面しました。これらの変更は私にとってはうまくいきました:
1) このメソッドの変更:
マップ ビュー クラスに実装するこのメソッド
(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView*)view
次の行の順序で
self.selectedAnnotationView = view;
[self.mapView addAnnotation:self.calloutAnnotation];
2) CalloutMapAnnotationView.m ファイル内
- (void)adjustMapRegionIfNeeded in this method first 5 lines like bellow
CGFloat xPixelShift = 0;
if ([self relativeParentXPosition] < 38) {
xPixelShift = 38 - [self relativeParentXPosition];
} else if ([self relativeParentXPosition] > self.frame.size.width - 38) {
xPixelShift = (self.frame.size.width - 38) - [self relativeParentXPosition];
}
3) 同じクラス CalloutMapAnnotationView.m (void)drawRect:(CGRect)rect
で - このメソッドの後にCGFloat parentX = [self relativeParentXPosition];
行とrect = self.bounds;
この行の上に次の行を追加します
if ([self relativeParentXPosition] < 38) {
parentX = 38;
} else if ([self relativeParentXPosition] > self.mapView.frame.size.width - 38) {
parentX = [self relativeParentXPosition]-25;
}
4) 同じクラス CalloutMapAnnotationView.m 内。
- (void)didMoveToSuperview {
[super didMoveToSuperview];
[self.superview bringSubviewToFront:self];
}
上記のクラスを直接使用して、iOS 5 と iOS 6 の両方で問題なく使用できます。要件に応じて必要な変更を行う必要があります。