Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iPhone的MKMapView中添加UIImage?_Iphone_Ios_Ipad_Mkmapview - Fatal编程技术网

如何在iPhone的MKMapView中添加UIImage?

如何在iPhone的MKMapView中添加UIImage?,iphone,ios,ipad,mkmapview,Iphone,Ios,Ipad,Mkmapview,我想在MKMapview中添加UIImage i、 例如:在一个特定的位置,我想添加一个名为“apple.jpg”的图像 我不知道怎么做 因为我已经添加了一个可拖动的pin作为注释。但我不知道是否可以添加多个图像。有关将图像添加为MKMapView的一部分的信息,请参阅本教程 如果要在MapView上将图像添加为Pin,请使用下面的代码 MKAnnotationView *annotationView = [[[MKAnnotationView alloc] init]; annotatio

我想在MKMapview中添加UIImage

i、 例如:在一个特定的位置,我想添加一个名为“apple.jpg”的图像

我不知道怎么做


因为我已经添加了一个可拖动的pin作为注释。但我不知道是否可以添加多个图像。

有关将图像添加为MKMapView的一部分的信息,请参阅本教程

如果要在MapView上将图像添加为Pin,请使用下面的代码

MKAnnotationView *annotationView = [[[MKAnnotationView alloc] init];

annotationView.image = [UIImage imageNamed:@"apple.png"];
annotationView.annotation = annotation;
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annotationView.rightCalloutAccessoryView.tag = 101;

    annotationView.canShowCallout = YES;
 [yourMapView addAnnotation:annotationView];

有关将图像添加为MKMapView的一部分的信息,请参阅本教程

如果要在MapView上将图像添加为Pin,请使用下面的代码

MKAnnotationView *annotationView = [[[MKAnnotationView alloc] init];

annotationView.image = [UIImage imageNamed:@"apple.png"];
annotationView.annotation = annotation;
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annotationView.rightCalloutAccessoryView.tag = 101;

    annotationView.canShowCallout = YES;
 [yourMapView addAnnotation:annotationView];

正如@Kassem Bagher提到的,您需要创建自定义的
MKAnnotationView
,检查任何教程()

正如@Kassem Bagher提到的,您需要创建自定义的
MKAnnotationView
,检查任何教程()

您的图像必须是png格式的,请参见下面的代码

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

MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"pinView"];
if (!pinView) {
   pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pinView"] autorelease];
   pinView.image = [UIImage imageNamed:@"apple.png"];
   pinView.canShowCallout = YES;
 }
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释
{
MKPinAnnotationView*pinView=(MKPinAnnotationView*)[mapView出列可重用的AnnotationViewWith Identifier:@“pinView]”;
如果(!pinView){
pinView=[[MKPinAnnotationView alloc]initWithAnnotation:注释重用标识符:@“pinView”]自动释放];
pinView.image=[UIImage ImageName:@“apple.png”];
pinView.canShowCallout=是;
}
}

您的图像必须为png格式,请参见下面的代码

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

MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"pinView"];
if (!pinView) {
   pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pinView"] autorelease];
   pinView.image = [UIImage imageNamed:@"apple.png"];
   pinView.canShowCallout = YES;
 }
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释
{
MKPinAnnotationView*pinView=(MKPinAnnotationView*)[mapView出列可重用的AnnotationViewWith Identifier:@“pinView]”;
如果(!pinView){
pinView=[[MKPinAnnotationView alloc]initWithAnnotation:注释重用标识符:@“pinView”]自动释放];
pinView.image=[UIImage ImageName:@“apple.png”];
pinView.canShowCallout=是;
}
}

这是工作代码,我已经完成了下面的代码没有必要的图像是.png、.jpg或.gif它的任何格式您都可以使用它

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
           MKPinAnnotationView *pinAnnotation = nil;
           NSString *defaultPinID = @"myPin";
           pinAnnotation = (MKPinAnnotationView *)[mapview dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
                            if ( pinAnnotation == nil )
                                pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

           pinAnnotation.image = [UIImage imageNamed:@"marker_postoffice.png"];
           pinAnnotation.annotation = annotation;
           pinAnnotation.canShowCallout = YES;
           UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];



          [infoButton addTarget:self action:@selector(showDetails)forControlEvents:UIControlEventTouchUpInside];
          pinAnnotation.rightCalloutAccessoryView = infoButton;





       // now you can set diff image by  [annotation title] you  can set diff image with if else condition like below code


        if([[annotation title] isEqualToString:objAppDelegate.OfficePinTitle]) 
         {   

                        pinAnnotation.image = [UIImage imageNamed:@"marker_postoffice.png"];
                        pinAnnotation.annotation = annotation;
                        pinAnnotation.canShowCallout = YES;
                        UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

                        infoButton addTarget:self
                                                       action:@selector(showDetails)forControlEvents:UIControlEventTouchUpInside];

                                        pinAnnotation.rightCalloutAccessoryView = infoButton;

         }
         else
         {

                        pinAnnotation.image = [UIImage imageNamed:@"marker_red_postoffice.png"];
                        pinAnnotation.canShowCallout = YES;
                        UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

                        [infoButton addTarget:self action:@selector(showDetails)forControlEvents:UIControlEventTouchUpInside];

                         pinAnnotation.rightCalloutAccessoryView = infoButton;
         }


}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释
{
MKPinAnnotationView*pinAnnotation=nil;
NSString*defaultPinID=@“myPin”;
pinAnnotation=(MKPinAnnotationView*)[mapview dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if(pinAnnotation==nil)
pinAnnotation=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:defaultPinID]自动释放];
pinAnnotation.image=[UIImage ImageName:@“marker_postoffice.png”];
pinAnnotation.annotation=注释;
pinAnnotation.canShowCallout=是;
UIButton*infoButton=[UIButton Button类型:UIButtonTypedTailDisclosure];
[infoButton addTarget:self action:@selector(showDetails)for ControlEvents:UIControlEventTouchUpInside];
pinAnnotation.rightCalloutAccessoryView=infoButton;
//现在您可以通过[annotation title]设置diff image,您可以使用if-else条件设置diff image,如下面的代码所示
if([[annotation title]isEqualToString:objappDeleteGate.OfficePinTitle])
{   
pinAnnotation.image=[UIImage ImageName:@“marker_postoffice.png”];
pinAnnotation.annotation=注释;
pinAnnotation.canShowCallout=是;
UIButton*infoButton=[UIButton Button类型:UIButtonTypedTailDisclosure];
infoButton addTarget:self
操作:@选择器(显示详细信息)用于控制事件:UIControlEventTouchUpInside];
pinAnnotation.rightCalloutAccessoryView=infoButton;
}
其他的
{
pinAnnotation.image=[UIImage ImageName:@“marker_red_postoffice.png”];
pinAnnotation.canShowCallout=是;
UIButton*infoButton=[UIButton Button类型:UIButtonTypedTailDisclosure];
[infoButton addTarget:self action:@selector(showDetails)for ControlEvents:UIControlEventTouchUpInside];
pinAnnotation.rightCalloutAccessoryView=infoButton;
}
}

这是工作代码,我已经完成了下面的代码没有必要的图像是.png、.jpg或.gif它的任何格式您都可以使用它

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
           MKPinAnnotationView *pinAnnotation = nil;
           NSString *defaultPinID = @"myPin";
           pinAnnotation = (MKPinAnnotationView *)[mapview dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
                            if ( pinAnnotation == nil )
                                pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

           pinAnnotation.image = [UIImage imageNamed:@"marker_postoffice.png"];
           pinAnnotation.annotation = annotation;
           pinAnnotation.canShowCallout = YES;
           UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];



          [infoButton addTarget:self action:@selector(showDetails)forControlEvents:UIControlEventTouchUpInside];
          pinAnnotation.rightCalloutAccessoryView = infoButton;





       // now you can set diff image by  [annotation title] you  can set diff image with if else condition like below code


        if([[annotation title] isEqualToString:objAppDelegate.OfficePinTitle]) 
         {   

                        pinAnnotation.image = [UIImage imageNamed:@"marker_postoffice.png"];
                        pinAnnotation.annotation = annotation;
                        pinAnnotation.canShowCallout = YES;
                        UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

                        infoButton addTarget:self
                                                       action:@selector(showDetails)forControlEvents:UIControlEventTouchUpInside];

                                        pinAnnotation.rightCalloutAccessoryView = infoButton;

         }
         else
         {

                        pinAnnotation.image = [UIImage imageNamed:@"marker_red_postoffice.png"];
                        pinAnnotation.canShowCallout = YES;
                        UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

                        [infoButton addTarget:self action:@selector(showDetails)forControlEvents:UIControlEventTouchUpInside];

                         pinAnnotation.rightCalloutAccessoryView = infoButton;
         }


}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释
{
MKPinAnnotationView*pinAnnotation=nil;
NSString*defaultPinID=@“myPin”;
pinAnnotation=(MKPinAnnotationView*)[mapview dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if(pinAnnotation==nil)
pinAnnotation=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:defaultPinID]自动释放];
pinAnnotation.image=[UIImage ImageName:@“marker_postoffice.png”];
pinAnnotation.annotation=注释;
pinAnnotation.canShowCallout=是;
UIButton*infoButton=[UIButton Button类型:UIButtonTypedTailDisclosure];
[infoButton addTarget:self action:@selector(showDetails)for ControlEvents:UIControlEventTouchUpInside];
pinAnnotation.rightCalloutAccessoryView=infoButton;
//现在您可以通过[annotation title]设置diff image,您可以使用if-else条件设置diff image,如下面的代码所示
if([[annotation title]isEqualToString:objappDeleteGate.OfficePinTitle])
{   
pinAnnotation.image=[UIImage ImageName:@“marker_postoffice.png”];
pinAnnotation.annotation=注释;
pinAnnotation.canShowCallout=是;
UIButton*infoButton=[UIButton Button类型:UIButtonTypedTailDisclosure];
infoButton addTarget:self