【问题标题】:User interaction blocking new annotations views阻止新注释视图的用户交互
【发布时间】:2011-09-13 08:12:52
【问题描述】:

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

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

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

有什么办法可以解决吗?

【问题讨论】:

    标签: iphone objective-c mkmapview mkannotationview


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢,但这并不能真正回答我的问题。我无法将所有注释存储在数组中,因为它们来自流。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多