Ios MapKit注释自定义图像不';行不通

Ios MapKit注释自定义图像不';行不通,ios,annotations,mapkit,Ios,Annotations,Mapkit,我对MapKit注释上的自定义图像有问题。在我执行相同测试的地方构建一个示例项目,它可以正常工作(尽管drop效果和自定义图像不起作用) 但是,当我在地图视图项目上使用完全相同的函数时,自定义图像不会出现。我注意到颜色pin更改函数MKPinAnnotationColorPurple也不起作用。是否可能取决于某些项目属性 代码是: -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnot

我对MapKit注释上的自定义图像有问题。在我执行相同测试的地方构建一个示例项目,它可以正常工作(尽管drop效果和自定义图像不起作用)

但是,当我在地图视图项目上使用完全相同的函数时,自定义图像不会出现。我注意到颜色pin更改函数MKPinAnnotationColorPurple也不起作用。是否可能取决于某些项目属性

代码是:

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

    if ([annotation isKindOfClass:[MyLocation class]]) {

        MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [_mapView dequeueReusableAnnotationViewWithIdentifier:identifier];

        if (annotationView == nil) {
            annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
        } else {
            annotationView.annotation = annotation;
        }
        annotationView.enabled = YES;
        annotationView.animatesDrop=    NO;
        annotationView.image=[UIImage imageNamed:@"arrest.png" ];//here we use a nice image instead of the default pins


        annotationView.canShowCallout = YES;
        UIButton *btnDetails = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        //[btnDetails addTarget:self action:@selector(prova) forControlEvents:UIControlEventTouchUpInside]; 

        annotationView.rightCalloutAccessoryView=btnDetails;

        return annotationView;
    }

    return nil;
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释{
静态NSString*标识符=@“MyLocation”;
if([annotation isKindOfClass:[MyLocation class]]){
MKPinAnnotationView*annotationView=(MKPinAnnotationView*)[\u地图视图排队可重用AnnotationViewWithIdentifier:identifier];
如果(注释视图==nil){
annotationView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:标识符];
}否则{
annotationView.annotation=注释;
}
annotationView.enabled=是;
annotationView.animatesDrop=NO;
annotationView.image=[UIImage ImageName:@“restrip.png”];//这里我们使用一个漂亮的图像,而不是默认的管脚
annotationView.canShowCallout=是;
UIButton*btnDetails=[UIButton Button类型:UIButtonTypedTailDisclosure];
//[btnDetails addTarget:self action:@selector(prova)for ControlEvents:UIControlEventTouchUpInside];
annotationView.rightCalloutAccessoryView=btnDetails;
返回注释视图;
}
返回零;
}

UIButtonTypedTailDisclosure也不会出现(在其他项目中也会出现)。

什么在示例项目中“正确”工作,而不是在实际项目中?是否设置了地图视图的代理属性或出口?发布在示例中有效但在实际中无效的方法。您需要提供一些额外的信息。实际的代码甚至对您非常有用。该方法看起来不错,只是因为您使用的是自定义图像,所以它应该创建MKAnnotationView而不是MKPinAnnotationView(请参阅)。但是,无论如何都应显示详图索引按钮。检查地图的委托是否已设置,以及是否正在添加MyLocation类型的注释。在设置rightCalloutAccessoryView的行上放置断点或NSLog,以确保调用它。感谢您的回答…关于注释,在我的另一个项目(MKPinAnnotationView工作的地方),区别(显然)只是关于使用情节提要,而在当前项目中,我使用的是nib文件。在哪里可以检查映射的委托是否已设置?关于rightCalloutAccessoryView是的,回调可以工作,但没有按钮出现。。。