自定义MKAnnotationView可扩展,无需标注

时间:2014-03-28 09:29:18

标签: ios objective-c mapkit mkannotationview

我想在没有标注的情况下创建自定义MKAnnotationView(带图片),但在触摸后可展开。以下是我的想法:

1)首先MKAnnotation看起来像这样:

enter image description here

2)然后点击它后,这应该扩展,看起来像这样:

enter image description here

我开始定制MKAnnotationView并开设一个班级:

@interface CustomPinAnnotation : NSObject <MKAnnotation>

班级有方法:

-(MKAnnotationView*)annotationView {
    MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:self reuseIdentifier:@"AnnotationIdentifier"];
    annotationView.enabled = YES;
    annotationView.image = [[UIImage imageNamed:@"star"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

    return annotationView;
}

我尝试做的是将一个customView设置为MKAnnotationView的子视图,但是当我没有设置图像时它不会响应(这在我考虑之后这是非常合乎逻辑的) ,但我觉得我在做一些非常讨厌的事情,应该是一种以某种方式覆盖MKAnnotationView的方法。

1 个答案:

答案 0 :(得分:1)

 -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
   {
          enemyAnnotationView.image = [UIImage imageNamed:@"firstImage.png"];
   }

 -(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
   {
          enemyAnnotationView.image = [UIImage imageNamed:@"SecondImage.png"];
   }

尝试这样的第一种方法是针对注释的视图显示第一张图像的时间,

当用户选择注释

时,将运行第二种方法