如何在没有标注视图的情况下制作可点击的自定义MKAnnotationView

时间:2017-03-28 06:35:17

标签: ios objective-c mkmapview mkannotation mkannotationview

我想创建一个自定义的MKAnnotationView,如下所示

Map Annotation will look like this

单击Custom MKAnnotationView后,想要导航到详细视图。

我已创建此自定义视图,但无法单击此视图。

我也尝试过didSelectAnnotationView方法,但它对我没用。

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
        //here you action
    NSLog(@"didSelectAnnotationView");

}

在MapView上添加自定义MKAnnotationView:

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

    MKAnnotationView *returnedAnnotationView = nil;
        // handle our custom annotations

    returnedAnnotationView = [CustomAnnotation createViewAnnotationForMapView:self.mapViewList annotation:annotation];
    [returnedAnnotationView setEnabled:YES];
    [returnedAnnotationView setUserInteractionEnabled:YES];

    return returnedAnnotationView;

}

@implementation CustomAnnotation 

+ (MKAnnotationView *)createViewAnnotationForMapView:(MKMapView *)mapView annotation:(id <MKAnnotation>)annotation  {
    MKAnnotationView *returnedAnnotationView = (CustomAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:NSStringFromClass([CustomAnnotation class])];

    if (returnedAnnotationView == nil) {
        returnedAnnotationView = [[CustomAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:NSStringFromClass([CustomAnnotation class])];
        [returnedAnnotationView setUserInteractionEnabled:YES];
    }
    return returnedAnnotationView;
}

@end

我做错了什么,请帮忙!

0 个答案:

没有答案