チュートリアル

Yahoo! iOSマップSDKの主要機能を一通り体験していただくための開発チュートリアルを用意しました。
「利用準備」を済ませたうえでご利用ください。

ポップアップのイベント処理

また、地図上のアイコンをタッチした際の、ポップアップのイベント処理は以下の通りです。

  • YMKMapViewに対してAnnotationを追加すると、「mapView:(YMKMapView *)mapView viewForAnnotation:(Myannotation)annotation」にイベントが返されます。
  • アイコンのカスタマイズを行う場合は、このイベント内でAnnotationViewを作成し戻り値として返します。
YMapKitTestAppDelegate.m

//Annotation追加イベント
- (YMKAnnotationView*)mapView:(YMKMapView *)mapView viewForAnnotation:(MyAnnotation*)annotation{
  //追加されたAnnotationがMyAnnotationか確認
  if( [annotation isKindOfClass:[MyAnnotation class]] ){
    //YMKPinAnnotationViewを作成
    YMKPinAnnotationView *pin = [[[YMKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"Pin"] autorelease];
    //吹き出しに表示するボタンを追加
    UIButton * rightAccessoryButton = [UIButton buttonWithType: UIButtonTypeCustom];
    [rightAccessoryButton setFrame:CGRectMake(0, 0, 29, 29)];
    [rightAccessoryButton setBackgroundImage:[UIImage imageNamed:@"purple_arrow.png"] forState:UIControlStateNormal];
    [pin setRightCalloutAccessoryView:rightAccessoryButton];
    return pin;
  }
  return nil;
}
  • 吹き出しボタンが押されると、「mapView:(YMKMapView*)mapView annotationView:(YMKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control」にイベントが返されます。
YMapKitTestAppDelegate.m
//吹き出しボタンイベント
- (void)mapView:(YMKMapView*)mapView annotationView:(YMKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
  //押されたのがどのピンか判定
  if(view==pin){

  }
}

ポップアップの表示例:
ポップアップの表示例