2014-01-26 71 views
1

这是我的问题。由于我的viewForAnnotation方法,我创建了一个带按钮的红色别针,但没有显示按钮。在这里我的代码:按钮标题不显示注释

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id     <MKAnnotation>)annotation 
{ 
    //static NSString *defaultPinID = @"identifier"; 

MKPinAnnotationView *pinView = (MKPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:@"identifier"]; 

if (pinView == nil) 
{ 
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"identifier"]; 

    pinView.enabled = YES; 
    pinView.pinColor=MKPinAnnotationColorRed; 
    pinView.canShowCallout = YES; 

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeInfoDark]; 
    [btn setTitle:@"test" forState:UIControlStateNormal]; 

    pinView.rightCalloutAccessoryView = btn; 
} 
else 
{ 
    pinView.annotation = annotation; 
} 
pinView.annotation = annotation; 

return pinView; 
} 

有人可以帮我吗?

+0

您的问题标题显示“Button _title_ does not show ...”。你的意思是你没有在你的按钮上看到“测试”这个词,而是你看到一个带有一个圆圈的“我”?如果是这样,您需要设置足够宽度的按钮框架,使标题对于“我”图标的右侧可见。如果您不需要“我”图标,请使用UIButtonTypeCustom而不是UIButtonTypeInfoDark。 – Anna

+0

我看不到“测试”一词。我用btn.frame = CGRectMake(0,0,140,​​100)UIButtonTypeCustom,但它不工作。我尝试了其他按钮类型,但没有结果。要么它不工作(没有按钮显示)要么我可以看到“我”图标(所有没有标题的情况下) – Zoomzoom

+0

所以你得到一个标注,但你没有看到一个按钮,对吧?当你点击一个注释时,它是否在一个小的弹出框中显示注释标题?确保设置了地图视图委托(将地图视图的委托出口连接到视图控制器或在代码中执行mapView.delegate = self)。你怎么知道viewForAnnotation被调用?在那里放一个NSLog或断点。 – Anna

回答

0
  1. 您是否向您添加了注释映射?
  2. 你有没有设置MKMapView的代表?
  3. 你的viewForAnnotation函数是否被调用?
+0

1.是2.是3.是 – Zoomzoom