我有一個帶有幾個覆蓋圖的MKMapView。工作一切都很好,這是多麼簡單的工作令人難以置信。然而,有一件事我無法工作。這個想法很簡單:當用戶在覆蓋區覆蓋的區域內點擊時,必須提供帶有關於該覆蓋物的一些信息的標註。覆蓋層全部爲MKPolygon
,它們遵循MKOverlay協議以及MKAnnotation協議。攻擊覆蓋圖時顯示標註
MKOverlay協議符合 MKAnnotation協議。因此, 所有覆蓋對象也都是 註釋對象,並且可以將 視爲代碼中的一個或兩個。 如果您選擇將疊加對象 同時視爲兩個對象,那麼您需要負責管理該對象的兩個位置的 。如果 要顯示都爲它的覆蓋 視圖和註釋視圖,您 必須實現的 的MapView:viewForOverlay:和 的MapView:viewForAnnotation:方法 您的應用程序委託。它也是 意味着您必須從地圖的疊加層和 註釋數組中添加和刪除 對象。
這來自Apple文檔。我試過這樣的事情:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
MKAnnotationView *aView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
aView.canShowCallout = YES;
}
但這似乎並不奏效。我用手勢識別試過,但我不知道如何表達等的標註比使用財產...
謝謝你的回答。當我將引腳的alpha設置爲零時,標註自動獲得該alpha,所以這不是一個真正的選項。但是,當用戶輕擊疊加層時,我可以讓該針顯示,以便可以看到針和標註。我現在通過使用'mapView:didSelectAnnotationView:'和'mapView:didDeselectAnnotationView:'得到了這個工作。如果您在展示宣傳信息時隱藏了標識,這會很棒,但這並不重要。 – 2011-06-09 08:25:55
當我說0 alpha視圖,我的意思是圖像/ [清除顏色]不是annotationView.alpha = 0,使一個空白PNG放在它上面或使annotationView一個明確的清晰顏色背景視圖的抽象大小。 – tsakoyan 2011-06-09 14:23:44
啊,呃!它的工作方式太棒了,非常感謝! – 2011-06-10 07:07:30