2011-12-22 62 views
3


我試圖使自定義註釋視圖能夠響應觸摸而沒有成功。
感謝這個問題,我能夠做出一個註解視圖接近我想要的customize callout bubble for annotationview?也看到這個How to capture touches and NOT dismiss the callout?,但問題是完全不同的 我迄今爲止做的第一件事是繼承MKAnnotationView並覆蓋-setSelected:動畫:方法
如何創建響應觸摸的標註泡泡MKAnnotationView

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 
    if(selected) 
    { 
    MyCallOut * callOut=[MyCallOut createMyCallOut]; 
    callOut.tag=555; 
    [self.superview addSubview:callOut]; 

    } 
    else 
    { 
    // [[self viewWithTag:555] removeFromSuperview]; 
    //Remove my custom CallOut 
    } 
} 

的問題是,在地圖視圖是吃所有的觸摸事件,我自定義的標註有兩個按鈕,但被觸發按他們不採取行動。

在我的一個實驗中,我試圖將標註視圖添加到MKAnnotationView超級視圖(mapView),當我滾動時,一切看起來都很好,但如果我縮放標註左右移動。

+0

不知道我總是接受,但只有當答案是正確的;-) – Andrea 2011-12-22 11:57:29

+0

你是寫 – Hiren 2011-12-22 12:00:18

回答

4

你必須添加叫出附件在地圖上查看註釋

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation { 
MKPinAnnotationView *pinView = nil; 
if(annotation != mapView.userLocation) 
{ 
    static NSString *defaultPinID = @"com.invasivecode.pin"; 
    pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID]; 
    if (pinView == nil) pinView = [[[MKPinAnnotationView alloc] 
             initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease]; 
    pinView.pinColor = MKPinAnnotationColorRed; 
    pinView.canShowCallout = YES; 
    pinView.animatesDrop = YES; 
    pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 

    return pinView; 



} 
else { 
    [mapView.userLocation setTitle:@"I am here"]; 
} 
return pinView; 
} 

,併爲您的通話出

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 
{ 

} 
+0

我知道,但它不是我要找的。如果我要求系統標註,我的自定義標註將被覆蓋。 – Andrea 2011-12-22 08:53:29

+0

謝謝你,但這不是我要找的。 – Andrea 2011-12-22 11:57:04

+0

謝謝你。我正在尋找那個。現在你可以告訴我如何跟蹤哪個引腳被觸發。 – 2013-04-17 14:36:46

0

解決了尋找這個鏈接Custom annotation and callouts的單擊事件,其他棘手的部分是實現在假標註上按下按鈕的正確方法。我管理這部分創建一個布爾值,理解屏幕上註釋/ parentAnnotation的數量,並選擇何時可以消失或不消失。只需要使CalloutAnnotation可供選擇。

+3

無法打開鏈接 – 2013-04-22 13:54:41

+0

不幸的是,該網站已被刪除,找不到另一個 – Andrea 2013-04-22 14:28:15

+0

這就是爲什麼鏈接不應被接受的答案。 – sdasdadas 2016-11-21 15:28:23