在具有“弹出”效果的 MKMapView 中为 MKAnnotationView 设置动画自定义标注

Posted

技术标签:

【中文标题】在具有“弹出”效果的 MKMapView 中为 MKAnnotationView 设置动画自定义标注【英文标题】:Animating custom callout for MKAnnotationView in MKMapView with "pop in" effect 【发布时间】:2009-11-13 15:04:41 【问题描述】:

我终于设法组合了一个自定义标注 UIView,当点击 MKAnnotationView 时会显示该标注。我通过覆盖来做到这一点

- (void)setSelected:(BOOL)selected animated:(BOOL)animated;

在我的自定义 MKAnnotationView 子类中。注意:我通过将 canShowCallout 属性设置为 NO 来阻止显示主标注。

我想尝试复制标准标注使用的动画...它似乎会冒泡——比预期的要大一点,然后又恢复到正常大小。到目前为止,我似乎在试图弄清楚如何用核心动画制作类似的动画。有人有什么建议或指点吗?

提前致谢!

【问题讨论】:

【参考方案1】:

我开发了一个自定义标注气泡,它几乎与系统标注气泡相同,但在高度和内容方面提供了更大的灵活性。有关示例代码,请参阅我在 Asynchrony Solutions blog 上的帖子。它还详细介绍了使用 Core Animation 为标注设置动画的步骤,使其看起来从地图图钉中弹出。它涉及缩放和平移视图的仿射变换。

【讨论】:

【参考方案2】:

我为此找到了一个不错的解决方案。 ftutils library 提供了一个弹出动画。调用起来也很简单:

#import "FTAnimation.h"

[self.viewToAnimate popIn:.4 delegate:nil];

【讨论】:

以上是关于在具有“弹出”效果的 MKMapView 中为 MKAnnotationView 设置动画自定义标注的主要内容,如果未能解决你的问题,请参考以下文章

滚动 MKMapView 时淡出弹出框

标注在 MKMapView - iPhone 的引脚后面弹出

没有锚的popover segue,MKMapView

MKMapView 和 setRegion:animated: 不更新地图视觉效果

如何在 C# 中为我的控件添加移动效果?

自定义图钉动画 - MKMapView