.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.02 2010

mKMapViewに立てるピンの色を個別に変える話。

Hola!
KIMURAです。

今日はmkMapViewにピンを立てる時の「色」の話です。

このブログ内で、Oogami氏がピンカラーを変える話はしていますが、今回はもう少し踏み込んで「複数ピン」を立てた場合に個別に色を変える話をしましょう。

mkMapView上に立てる「ピン」は『MKAnnotation』というクラスで管理されているのですが、何故かこのクラスは「ピンの座標」「ピンのタイトル/サブタイトル(吹き出し)」しか管理していません。そこまで管理しているのなら「ピンカラー」まで管理してくれて良い様なものですが、ピンそのものを別の画像に差換える事が出来るから『MKAnnotation』では管理していないのだと思われます。

でも、手軽に使うには標準のピンは使いやすいものです。
#色が3色しかありませんが・・・

個別にピンカラーを変えるには、まずは『MKAnnotation』を継承したクラスを作り、そのメンバ変数に

 MKPinAnnotationColor pinColor;

を加えます。
そしてアノテーションを作成後、この変数に指定するカラーを設定して下準備は終了。

あとは、アノテーションをマップに登録した後に呼ばれるデリゲートメソッド

- (MKAnnotationView *)mapView:(MKMapView *)mapView
        viewForAnnotation:(id )ann {

で、パラメタのアノテーションが自分のものかを判断し、更に自分のものにキャストしてアクセスすればオケ。

  if( [ ann isKindOfClass:[ hogeAnnotation class ]] ) {
    MKPinAnnotationView *annotationView = [[[MKPinAnnotationView alloc]
                     initWithAnnotation:ann
                     reuseIdentifier:@"CurrentLocation"] autorelease];
    annotationView.pinColor = ((hogeAnnotation*)ann).pinColor;
    annotationView.animatesDrop = YES;
    annotationView.canShowCallout = YES;
    annotationView.highlighted = YES;

    return annotationView;
}


簡単ですねw
・・・って、こんな簡単の事を思いつくのにしばらくかかってしまった自分が恥ずかしい今日この頃デス。

では、今日はこの辺で。。。
Ciao!
関連記事
スポンサーサイト

Comment

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/126-75826259

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。