如何使用iPhone在MKMapView中自定义地图注释pin?

如何使用iPhone在MKMapView中自定义地图注释pin?,iphone,mkmapview,Iphone,Mkmapview,朋友们好, 我想在iPhone中开发一个功能MKMapView,并在MKAnnotation中显示自定义pin,因此请任何人向我提供有关此功能的链接或任何想法 提前感谢。您需要在注释的视图中指定注释图像 - (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation { static NSString * const kAnnotationId

朋友们好,

我想在iPhone中开发一个功能MKMapView,并在MKAnnotation中显示自定义pin,因此请任何人向我提供有关此功能的链接或任何想法


提前感谢。

您需要在注释的
视图中指定注释图像

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation {
        static NSString * const kAnnotationId = @"VumeliveAnnotation";

    MKPinAnnotationView *annotationView = nil;
    if ([annotation isKindOfClass:[CustomAnnotation class]])
    {
        annotationView = (MKPinAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:kAnnotationId];
        if (annotationView == nil) {
            annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:kAnnotationId] autorelease];
            annotationView.canShowCallout = YES;
            annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        }

        [annotationView setImage:[UIImage imageNamed:<your image name>]];
    }

    return annotationView;
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释{
静态NSString*常量kAnnotationId=@“VumeliveAnnotation”;
MKPinAnnotationView*annotationView=nil;
if([annotation isKindOfClass:[CustomAnnotation class]])
{
annotationView=(MKPinAnnotationView*)[self.mapView出列可重用AnnotationViewWithIdentifier:kAnnotationId];
如果(注释视图==nil){
annotationView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:kAnnotationId]autorelease];
annotationView.canShowCallout=是;
annotationView.rightCalloutAccessoryView=[UIButton Button,类型:UIButtonTypedTailDisclosure];
}
[annotationView setImage:[UIImage ImageName:];
}
返回注释视图;
}

您需要在注释的
视图中指定注释图像

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation {
        static NSString * const kAnnotationId = @"VumeliveAnnotation";

    MKPinAnnotationView *annotationView = nil;
    if ([annotation isKindOfClass:[CustomAnnotation class]])
    {
        annotationView = (MKPinAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:kAnnotationId];
        if (annotationView == nil) {
            annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:kAnnotationId] autorelease];
            annotationView.canShowCallout = YES;
            annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        }

        [annotationView setImage:[UIImage imageNamed:<your image name>]];
    }

    return annotationView;
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释{
静态NSString*常量kAnnotationId=@“VumeliveAnnotation”;
MKPinAnnotationView*annotationView=nil;
if([annotation isKindOfClass:[CustomAnnotation class]])
{
annotationView=(MKPinAnnotationView*)[self.mapView出列可重用AnnotationViewWithIdentifier:kAnnotationId];
如果(注释视图==nil){
annotationView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:kAnnotationId]autorelease];
annotationView.canShowCallout=是;
annotationView.rightCalloutAccessoryView=[UIButton Button,类型:UIButtonTypedTailDisclosure];
}
[annotationView setImage:[UIImage ImageName:];
}
返回注释视图;
}

非常感谢您为我提供代码,但我想设置图像而不是默认地图pin,所以对此有何想法……此代码正是这样做的……它不会添加默认pin,而是添加您在此处提供的图像
[annotationView setImage:[UIImage ImageName:]谢谢,有没有办法在mapview中设置地图pin上的索引号??请告诉我,meThis可以在模拟器上为我工作,但不能在实际的iPad(iOS 5.0.1)上工作。你知道为什么吗?@JosephDeCarlo你的图像可能从捆绑资源中丢失了。确保它存在于项目文件夹中并添加到捆绑资源中。若这两个图像中的一个丢失,它将出现在模拟器中,但不会出现在设备上。希望这有帮助谢谢你给我这么多的代码,但我想设置图像而不是默认的映射pin,所以对此有任何想法…这段代码正是这样做的…..它不会添加默认pin,而是添加你在此处提供的图像
[annotationView setImage:[UIImage ImageName:]谢谢,有没有办法在mapview中设置地图pin上的索引号??请告诉我,meThis可以在模拟器上为我工作,但不能在实际的iPad(iOS 5.0.1)上工作。你知道为什么吗?@JosephDeCarlo你的图像可能从捆绑资源中丢失了。确保它存在于项目文件夹中并添加到捆绑资源中。若这两个图像中的一个丢失,它将出现在模拟器中,但不会出现在设备上。希望这有帮助