2012-08-23 58 views
0

我已經成功地獲得了用戶位置的點擊事件顯示的標題,但是我無法讓它爲我自己的自定義註釋工作。我已經嘗試設置標題,但它明確,但這不起作用,我怎麼能做到這一點?標題未在MKMapView中顯示註釋

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { 
    MKPinAnnotationView *userMarkerView = nil; 
    PayMarkerAnnotationView *payMarkerView = nil; 

    if(annotation != mapView.userLocation) 
    { 
     payMarkerView = (PayMarkerAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"markerView"]; 
     if(payMarkerView == nil) { 
      payMarkerView = [[PayMarkerAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"markerView"]; 
     } 

     payMarkerView.annotation = annotation; 
     return payMarkerView; 
    } 
    else { 
     [mapView.userLocation setTitle:@"You are here"]; 
     return userMarkerView; 
    } 
} 

類:

@interface PaymentMarker : NSObject <MKAnnotation> { 
    NSString* type; 
    NSString* address; 
    float latitude; 
    float longitude; 
    NSString* title; 
} 


@property (nonatomic, copy) NSString* address; 
@property (nonatomic, copy) NSString* type; 
@property (nonatomic) float latitude; 
@property (nonatomic) float longitude; 
@property (nonatomic, copy) NSString* title; 

//MKAnnotation 
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 

@end 



- (id)initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier { 
    if(self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier]) { 
     self.backgroundColor = [UIColor clearColor]; 
     NSString* imageName; 

     if ([annotation isMemberOfClass:[PaymentMarker class]]) 
     { 
      PaymentMarker *pm = (PaymentMarker *)self.annotation; 
      if([pm.type isEqualToString:@"nzpost"]) { 
       imageName = @"icon-map-post.png"; 
      } else { 
       imageName = @"icon-map-incharge.png"; 
      } 

      self.image = [UIImage imageNamed:imageName]; 
     } 
    } 
    return self; 
} 

回答

2

您需要註解視圖的canShowCallout屬性設置爲YES

您可以在initWithAnnotation方法做到這一點,if塊中:再次

self.canShowCallout = YES; 

self.backgroundColor = ... 
+0

感謝安娜,希望我能告訴你它是如何尋找,尋找偉大的! – Baconbeastnz