web-dev-qa-db-ja.com

プログラムでマップピンを選択する方法

MapsConceptは初めてです。

添付画像を一度見つけてください。

enter image description here

「ピン」をクリックすると、「あなたの笑顔を賞賛してください」というメッセージまたは任意のテキストが表示されます.....テーブルビューを選択すると、そのピンに対してそのメッセージを表示する必要があります(そのピンのユーザーインタラクションを出力します)...

このマップとピンには以下のコードを使用しています。

    -(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
customLocation.latitude=[casesobjc.latitude_string doubleValue];
        customLocation.longitude=[casesobjc.longitude_string doubleValue];
 MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:casesobjc.locationForMap_string andCoordinate:customLocation];
[mapView addAnnotation:newAnnotation];
}
- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation {
 MKPinAnnotationView *pin = (MKPinAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier: @"annotation_ID"];
if (pin == nil) {
        pin = [[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"annotation_ID"];
    } else {
        pin.annotation = annotation;
    }
    pin.pinColor = MKPinAnnotationColorPurple;
    pin.animatesDrop = YES;
    pin.canShowCallout=YES;
return pin;
}

今度は以下のようにすべてのピンを一度表示します。

enter image description here

方法テーブルビューをクリックすると、ピンを選択したときのように、そのピンのタイトルを表示する必要がありますか?

前もって感謝します

24
Babul

あなたが探しているメソッドはselectAnnotation:です。

didSelectRowAtIndexPathで、テーブルの行に関連付けられている注釈を見つける必要があります。

それを見つけたら、次を使用して選択するように指示できます。

[mapView selectAnnotation:foundAnnotation animated:YES];
31
adamweeks

Objective Cの回答と同じように、テーブルビューには注釈のリストがあります。 In Swift in didSelectRow

Swift 4:

// annotations would be the array of annotations - change to your required data sets name
let selectedAnnotation = annotations[indexPath.row]
self.mapView.selectAnnotation(selectedAnnotation, animated: true)

短くてシンプル。

4
App Dev Guy