【iOSアプリ開発】SampleMapKit作成!地図を使ったアプリを作る為に

4.ピンを立てる自作メソッドを作成(ViewDidLoadメソッドの下)

//ピンを立てる自作メソッド
- (MKPointAnnotation *)createdPin:(CLLocationCoordinate2D)co Title:(NSString *)title Subtitle:(NSString *)subtitle
{

MKPointAnnotation *pin = [[MKPointAnnotation alloc] init];

pin.coordinate = CLLocationCoordinate2DMake(latitude,longitude);

pin.title = title;
pin.subtitle = subtitle;

return pin;

}

 

5.自作メソッドを呼び出してピンオブジェクトを作成、ピンを立てる

   //現在地を表示
    mapView.showsUserLocation = YES;

//ピンを立てる ↓☆☆☆アヤラ、SMモール、JYモールのピンを追加
//アヤラ
MKPointAnnotation *pin = [self createdPin:CLLocationCoordinate2DMake(10.317347, 123.905759) Title:@"アヤラ" Subtitle:@"biggest shopping mall in Cebu."];

[mapView addAnnotation:pin];

//SMモール
MKPointAnnotation *pin2 = [self createdPin:CLLocationCoordinate2DMake(10.314872,123.90273) Title:@"SMモール" Subtitle:@"Next Mall."];

[mapView addAnnotation:pin2];

//JYモール
MKPointAnnotation *pin3 = [self createPin:CLLocationCoordinate2DMake(10.33057,123.897903) Title:@"JYモール" Subtitle:@"Third Mall."];

[mapView addAnnotation:pin3];

// ↑ここまで☆☆☆

//表示するためにViewに追加
[self.view addSubview:mapView];

 

6.(おまけ)ピンが降ってくるアニメーションを実装したい場合、Delegateメソッドを追加

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation
{
    static NSString *pinIndentifier = @"PinAnnotationID";

//ピン情報の再利用
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:pinIndentifier];

if (pinView == nil){
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pinIndentifier];
    pinView.animatesDrop = YES;
    pinView.canShowCallout = YES;

    pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}

return pinView;

}

 

7.(おまけ)ピンの吹き出しに乗っているinformationボタンをタップした時発動されるメソッドを追加(実際は画面遷移などのコードを書くとよし

- (void) mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    //iボタンをタップした時にしたい動作を記述するメソッド

NSLog(@"%@",view.annotation.title);

}

 

操作する対象が動いている場合(今回は落下しているアニメーション)、ユーザーは押したくなるという心理が働き、自然と効果的なUXを提供できるという効果が生まれます。

落下させなくてもピンは操作できますが、その一手間を加えるだけでグッと初心者が作ったアプリという印象から抜け出すことが出来ます。なのでおまけの部分はより高い操作性をユーザーに提供したい場合に利用していただくと効果的です。

NexSeedの英語留学、エンジニア留学について詳しく知りたい方はこちら
お気軽にお問い合わせください。

投稿者プロフィール

IchinoheEriko
IchinoheEriko
ニュージーランド・オーストラリアを経てセブ島にやってきた、世界を飛び回るベテラン女性エンジニア。インターネット創世期よりWebサイト製作を経験。小売業販促アイテム印刷システム「ipopweb」の立ち上げに企画時から参画し、DB 設計・プログラミング 開発を担当しリリース。業務システムエンハンスやポータルサイトのリニューアル開発、運営、保守も多数手がける。OracleMaster保持者。PHP、JavaScriptを始め15以上の言語使用経験を持つ。茨城大学工学部システム工学科卒。