如何放大注释单击不打开annotationView?

时间:2014-02-03 13:22:48

标签: ios objective-c mkmapview mapkit

我正在使用Apple地图。目前我必须单击我的一个注释引脚并且注释视图正在打开,而不是我可以单击此视图并发生一些事情。但我想点击我的注释引脚,并且应该放大地图而不先打开注释视图。我试过这个,但它不起作用:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{

if(someValues > 1){
    //If someValues are bigger than one then only zoom in without returning the annotation View

    MKCoordinateRegion region = mapView.region;
    MKCoordinateSpan span;
    span.latitudeDelta = region.span.latitudeDelta/5;
    span.longitudeDelta = region.span.longitudeDelta/5;
    region.span = span;
    region.center = anntotation.coordinate;
    [mapView setRegion:region animated:TRUE];

//return 0 returns a default view i know....whats correct?
    return 0;

} else {


MKPinAnnotationView *view = nil;

if (annotation != mapView.userLocation) 
{
    view = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"identifier"];

    if (nil == view) {
        view = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"identifier"];
    }
    [view setPinColor:MKPinAnnotationColorRed];
    view.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    [view setCanShowCallout:YES];
    [view setAnimatesDrop:NO];

}
    return view;
}
}

是否有任何委托方法我缺席了?

1 个答案:

答案 0 :(得分:1)

请在mapview中查看didSelectAnnotationView委托方法。

示例:

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
    if([[view annotation]  isKindOfClass:[myMarker class]]) return;
} 

在这里:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    if([[view annotation]  isKindOfClass:[myMarker class]]) return nil;
}