サムネイルとラベルを表示できるカスタムアノテーション。以下は付属のデモ。
サムネイルをタップすると吹出しがアニメーションして広がり、ラベルが表示される。
ソースコードに手を入れてサムネイルのサイズを変えてみた。
黒い吹出しはCoreGraphicsで描画していて(newBubbleWithRect:)、拡大縮小も問題なし。それにしてもこうやって簡単に変更できるのがオープンソースのいいところ。
使い方。
JPSThumbnail *thumbnail = [[JPSThumbnail alloc] init]; thumbnail.image = [UIImage imageNamed:@"empire.jpg"]; thumbnail.title = @"Empire State Building"; thumbnail.subtitle = @"NYC Landmark"; thumbnail.coordinate = CLLocationCoordinate2DMake(40.75, -73.99); thumbnail.disclosureBlock = ^{ NSLog(@"selected Empire"); }; JPSThumbnailAnnotation *annotation = [[JPSThumbnailAnnotation alloc] initWithThumbnail:thumbnail]; [mapView addAnnotation:annotation];モデル JPSThumbnailを作りこれをカスタムアノテーション JPSThumbnailAnnotationに入れてマップへ追加する。ボタンを押した時の処理はblocksで定義しておける。
オーソドックスなGUIだが悪くない。デザインはソースを修正すれば自分で微調整できるし、今度使おうか検討中。