2013-04-02 67 views
18

我是Maps Concept的新手。如何以編程方式選擇地圖別針

請一次找到附件圖像。

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

怎麼辦?當我們點擊表視圖,我需要顯示標題爲腳像我們如何表現,當我們選擇一個針?

由於提前

+0

你有沒有提到具有自定義圖像/自定義地圖引腳調出視圖的旋轉視圖? – Spynet

+0

我不明白?...我使用此代碼,但不工作..即customLocation.latitude = appdelegate.appDelegateLatitude; customLocation.longitude = appdelegate.appDelegateLongitude; MapViewAnnotation * newAnnotation = [[MapViewAnnotation alloc] initWithTitle:casesobjc.locationForMap_string andCoordinate:customLocation]; [mapView selectAnnotation:newAnnotation animated:YES]; @Spynet – Babul

+0

只要在選中該行時傳遞標題名稱,併爲標註設置標題 – krishh

回答

25

,你正在尋找的方法是selectAnnotation:

在您的didSelectRowAtIndexPath中,您必須找到與表格行關聯的註釋。

一旦你找到它,你可以告訴它,通過選擇它:

[mapView selectAnnotation:foundAnnotation animated:YES]; 
+0

我想我有一個相當類似的問題。你能幫我看看我的[問題](http://stackoverflow.com/questions/28144466/how-to-select-map-pin-when-tapping-table-row-that-associates-with-it )也?我無法弄清楚,特別是如何找到與表格行相關的註釋。 – SanitLee

0

同爲目標C答案,在你的tableview你有批註的列表。在斯威夫特在didSelectRow

對於斯威夫特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) 

簡短。

相關問題