0

我正在开发一个使用 MKMapView 来跟踪用户进度的应用程序,我想我会采用 iOS 7 Apple Maps 方法,即使用标注按钮开始跟踪。但是在我的情况下,用户停留在同一个视图上,所以我需要修改按钮以指示跟踪已经在进行中。

我创建了一个简单的动画,并在点击按钮时将其添加到按钮的图层中。工作正常。如果用户关闭然后带回标注,则会出现问题。尽管 didSelectAnnotation 中的代码将动画放回图层上,但呈现的视图没有动画。根据这篇文章:

UIButton 没有为 MKAnnotationView 正确加载

这是因为注释视图是在调用 didSelectAnnotation 之前准备好的。它必须提前做好准备,因为 viewForAnnotation,我可以这样做的另一个地方,在重新显示标注时不会被调用。

既然我知道了这一点,我想不出任何办法来完成这项工作,但我希望有人能给出答案。

编辑:

我尝试将动画添加到 viewForAnnotation 中的按钮,然后暂停它,打算在点击按钮时恢复它。但是,当点击按钮时,它不再有动画 - mapkit 似乎已将其剥离。它在 didSelectAnnotation 中,但在两者之间的某个地方消失了。

我可以将动画添加到整个 MKAnnotationView,但这并不像预期的那样 - 整个动画,包括标注,看起来真的很奇怪。此外,在此视图上暂停动画会干扰标注的显示。

我在这里要做的就是使按钮图像“脉冲”以指示它已被点击并且正在进行跟踪,同时让它看起来可点击,以便用户知道他们可以再次点击它以停止跟踪。

我有一种感觉,我在这里是 SOL……请有人证明我错了!

4

1 回答 1

0

答案是使用完全自定义的标注。我使用以下帖子和示例代码作为指导,并且能够使其正常工作。

http://blog.asynchrony.com/2010/09/building-custom-map-annotation-callouts-part-1/ http://blog.asynchrony.com/2010/09/building-custom-map-annotation-标注-第 2 部分/

于 2013-10-13T23:08:27.670 回答