MapKitのアノテーションからポップオーバーする

2010-06-16
2011-01-08
かなり古い記事です。現在も有効な内容であるかどうか分かりませんのでご注意ください。

iPadプログラミングでちょっと試行錯誤したのでメモ。
convertRectでAnnotationViewのframeの座標をmapView上の座標に変更している部分が肝。

- (void)showPopover:(SomeContentViewController *)contentViewController
        fromAnnotationView:(MKAnnotationView *)annotationView
        onMapView:(MKMapView *)mapView
{
  UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController: contentViewController];
  [popoverController setPopoverContentSize:CGSizeMake(320, 480)];

  [popoverController presentPopoverFromRect:[annotationView.superview convertRect:annotationView.frame toView:mapView]
                                     inView:mapView
                   permittedArrowDirections:UIPopoverArrowDirectionAny
			                       animated:YES];
}

これでアノテーション(ピン)からふきだしが出ているように見える。

しかしObjective-Cのサンプルコードを抜き出すのはなんか難しいな。
動いてるコードから書き換えた部分があるので動かなかったら適当に直すってことで。

Profile

フルスタック気味のフリーランスプログラマー。

どちらかと言うと得意はインフラ構築とサーバーサイドプログラミングですが、フロントエンドもぼちぼちやっています。

最近の興味範囲はWordPress、AWS、サーバーレス、UIデザイン。

愛車はセロー。カメラはペンタックス。旅好きです。横浜在住。