2013年4月25日木曜日

サムネイル付きマップ用カスタムアノテーション

サムネイルとラベルを表示できるカスタムアノテーション。以下は付属のデモ。

サムネイルをタップすると吹出しがアニメーションして広がり、ラベルが表示される。

ソースコードに手を入れてサムネイルのサイズを変えてみた。
黒い吹出しは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だが悪くない。デザインはソースを修正すれば自分で微調整できるし、今度使おうか検討中。


0 件のコメント:

コメントを投稿