2011-07-07 85 views
4

我有以下情況: - 3引腳與座標相同,但不同的標題和信息 - 在地圖上有ONY一個引腳MapKit多個引腳座標相同,不同的信息選擇

它可以挖掘多次在該引腳上,註釋顯示爲: - 第一次點擊 - >引腳1的註釋 - 第二次點擊 - >引腳2的註釋 - 第三次點擊 - >引腳3的註釋 - 第四次點擊 - >針腳1的註釋

您有什麼想法應該如何實現它嗎?

+0

您現在解釋它的工作方式 - 點擊多次循環瀏覽標註 - 但不是您希望如何工作。很難理解你在問什麼。 –

+0

如果在地圖上以相同的座標放置3個或更多針腳,當我點擊多次時,只有其中2個顯示在該泡泡標註中。所以,在這種情況下,我想顯示3個或更多不同的標註信息。 – dorin

+0

Nevan可以請你提供一些建議嗎? – dorin

回答

2

您可以實施didSelectAnnotationView委託方法,並根據上次「正確」選擇的內容選擇「正確」註釋。

如果你只在地圖上和這些註釋只有其中之一集羣,那麼你就可以保持一個int伊娃說會記住最後一次選擇的註釋是在委託方法增加它。

例如:

// In .h 
int lastAnnotationSelected; 

// In .m 
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view 
{ 
    int nextAnnotationToSelect = (lastAnnotationSelected + 1) 
            % mapView.annotations.count; 

    id<MKAnnotation> nextAnnotation = 
     [mapView.annotations objectAtIndex:nextAnnotationToSelect]; 

    [mapView selectAnnotation:nextAnnotation animated:YES]; 

    lastAnnotationSelected = nextAnnotationToSelect; 
} 

如果您還showsUserLocation打開,那麼你就必須要在方法中添加的支票MKUserLocation並跳過它(如果你願意的話),並進入下一個羣集中的註釋。另外,如果你有多個批註集羣(座標爲A的座標爲3,座標爲B的座標爲5,座標爲C的座標爲4等),那麼你需要跟蹤一個lastAnnotationSelected的數組和數組中的方法,首先確定選擇了哪個羣集並獲取要在該羣集中選擇的下一個註釋。