如何使用iPhone在MKMapView中自定义地图注释pin?
朋友们好, 我想在iPhone中开发一个功能MKMapView,并在MKAnnotation中显示自定义pin,因此请任何人向我提供有关此功能的链接或任何想法如何使用iPhone在MKMapView中自定义地图注释pin?,iphone,mkmapview,Iphone,Mkmapview,朋友们好, 我想在iPhone中开发一个功能MKMapView,并在MKAnnotation中显示自定义pin,因此请任何人向我提供有关此功能的链接或任何想法 提前感谢。您需要在注释的视图中指定注释图像 - (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation { static NSString * const kAnnotationId
提前感谢。您需要在注释的
视图中指定注释图像
- (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你的图像可能从捆绑资源中丢失了。确保它存在于项目文件夹中并添加到捆绑资源中。若这两个图像中的一个丢失,它将出现在模拟器中,但不会出现在设备上。希望这有帮助