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;
}
有人可以帮我吗?
您的问题标题显示“Button _title_ does not show ...”。你的意思是你没有在你的按钮上看到“测试”这个词,而是你看到一个带有一个圆圈的“我”?如果是这样,您需要设置足够宽度的按钮框架,使标题对于“我”图标的右侧可见。如果您不需要“我”图标,请使用UIButtonTypeCustom而不是UIButtonTypeInfoDark。 – Anna
我看不到“测试”一词。我用btn.frame = CGRectMake(0,0,140,100)UIButtonTypeCustom,但它不工作。我尝试了其他按钮类型,但没有结果。要么它不工作(没有按钮显示)要么我可以看到“我”图标(所有没有标题的情况下) – Zoomzoom
所以你得到一个标注,但你没有看到一个按钮,对吧?当你点击一个注释时,它是否在一个小的弹出框中显示注释标题?确保设置了地图视图委托(将地图视图的委托出口连接到视图控制器或在代码中执行mapView.delegate = self)。你怎么知道viewForAnnotation被调用?在那里放一个NSLog或断点。 – Anna