iphone - 用户交互阻止新的注释 View

标签 iphone objective-c mkmapview mkannotationview

我使用 MKMapView 开发了一个小型应用程序,其中 MKAnnotations 连续添加在 map 上。只要用户不触摸 map View ,它就可以正常工作。

如果用户尝试与 map 交互,我注意到没有新的 MKAnnotationViews 添加到 map 中。事实上,我发现只要用户不断与 map 交互,就不会调用 mapView: didAddAnnotationViews: 。一旦用户的手指离开屏幕,mapView: didAddAnnotationViews: 就会被调用,并在参数中传递所有应该添加的 MKAnnotationViews

我尝试强制调用 mapView: didAddAnnotationViews,但我需要将 MKAnnotationViews 作为参数传递(因此我无法使用基于定期调用的任何内容),当我尝试在 mapView: viewForAnnotation: 末尾调用它时,它不起作用,因为 View 尚未添加到 mapView 中。尝试通过另一个线程添加注释也是一个坏主意,因为这将导致 Collection was mutated while being enumerated 异常(可能来自存储注释 View 的可变数组)。

有什么办法可以解决这个问题吗?

最佳答案

您可以创建一个实现委托(delegate)的自定义类。

您可以使用 MKAnnotationView 的 initWithAnnotation: 方法来创建注释并将其添加到数组中。

然后您可以使用 addAnnotations: 方法添加注释,将它们全部添加到 map 中。

只要您使用自定义注释,您就需要手动创建它们,所以用户不能。

关于iphone - 用户交互阻止新的注释 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398710/

相关文章:

iphone - 即使我的内容大小小于其框架,我的 ScrollView 也会滚动

iphone - 可以在MKMapView上绘制的最大注释数(MKAnnotation)?

iOS:UIView 层次结构:使 Map View 在 UIView 下处于事件状态

ios - MapKit Xcode 编程

ios - 自定义字体未在某些模拟器上显示

ios - 过滤/排序 MKLocalSearch 响应

objective-c - 如何在鼠标光标周围绘制高光

objective-c - 如何将 UITableViewController 添加到 XCode4 中 UITabViewController 上的 UINavigationController?

objective-c - 通过标题获取 NSMenu 树的 NSMenuItem

ios - 如何实现 Realtor iPad 应用程序中使用的自定义绘图搜索工具?