正在尝试在mkmapview上播放注释和气泡标注



我正在iphone中开发一个处理地图的应用程序。我有很多注释。我需要在标注气泡中加载不同的图像。这意味着用户可以编辑标注,它可能是图像,他也可以在标注气泡上键入文本。如何对标注气泡进行多重操作
最重要的是,这个注释必须在单击保存按钮后放在地图上。例如,我有两个类(mapview和photoview),在photoview中,当用户拍照或浏览照片时,我有三个按钮(chooshphoto、takephoto、usephoto),他想使用这张照片。当他点击usephoto按钮时,注释必须在此之后删除。并显示在地图视图上。

你问题的后半部分不是很清楚,但我会试着回答第一部分。

您可以应用于MKAnnotation的标注视图的唯一真正自定义是设置标题、字幕标签和左/右标注AccessoryViews。您可以将后者设置为图像或callOutAccessoryViewIndicators,或其他UIView,但其高度不能超过32像素。MKAnnotation查看文档

恐怕真的就这样。对于比这更高级的东西,您必须创建一个自定义实现。这篇博客文章应该会有所帮助,我计划自己做一些类似的事情。

MKPinAnnotationView可以设置为根据您的描述放置在地图上,因此只要您对Annotation视图本身的Pin图像感到满意,您就可以简单地将其animatesDrop属性设置为YES,添加后它将在地图上设置动画。

MKPinAnnotation查看文档

编辑:我想这就是你想要的

在mapView控制器中,定义一个特性以容纳要设置动画的对象。

@interface MyMapViewController {
    Photo *photoToAnimate;
}
@property (nonatomic, retain) Photo *photoToAnimate;
@end

然后在实现文件中,将以下内容添加到ViewDidAppear

-(void)ViewDidAppear {
     ...
     if (photoToAnimate) {
         [mapView addAnnotation:photoToAnimate];
         self.photoToAnimate = nil; // reset it for the next time
     }
     ...
 }

然后在您的PhotoViewController中,只需在按钮上设置属性即可按

-(void)usePhotoAction {
    ...
    mapViewController.photoToAnimate = photo;
    ...
 }

至少这是我在评论中试图描述的非常简单的方式。当MapView重新出现时,ViewDidAppear将激发,并相应地将接点添加到自身。如果需要添加多个pin,请使用数组存储它们并在数组中进行迭代。

对此可能有更好的模式,但简而言之,MapView需要以某种方式获取要丢弃的对象,然后在调用ViewDidAppear之前不要对其执行任何操作。

最新更新