开viewload
我正在循环一些数据并添加点数:
for (id venue in venues) {
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
point.coordinate = coords here;
point.title = @"title"
point.subtitle = @"sub";
[self.map addAnnotation:point];
}
我尝试做的是在Annotation中添加一个简单的公开按钮。我使用以下内容:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"String"];
if(!annotationView) {
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"String"];
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
annotationView.enabled = YES;
annotationView.canShowCallout = YES;
return annotationView;
}
然而,在视图加载后,精确点不再显示。如果我删除了viewForAnnotation
所有内容,那么我当然没有公开按钮。
我在这里做错了什么?
答案 0 :(得分:2)
如果您想添加&#34; PIN&#34;对于MapView,您应该使用MKPinAnnotationView
,而不是MKAnnotationView
。
- (MKAnnotationView *)mapView:(MKMapView*)mapView
viewForAnnotation:(id <MKAnnotation>)annotation
{
MKPinAnnotationView *annotationView = (MKPinAnnotaionView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"String"];
if(!annotationView) {
annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"String"];
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
}
披露按钮正在显示。