objective-c - MKMapView - setRegion :animated makes MKMapView unresponsive on iOS7

标签 objective-c annotations ios7 mkmapview

我们在我们的一个应用程序中看到了意外行为 - 我们在一个屏幕上显示 map View 上的注释,用户可以通过单击按钮更改显示的注释。

当我们用 iOS7 重建应用程序时,屏幕会定期卡住,即一旦下面的代码被多次调用(使用不同的注释集),MKMapView 上就不可能有更多的用户输入 - View 嵌入在选项卡栏和导航 Controller 及其所有 UI 元素仍然有效,但 map View 本身不接受任何用户输入(缩放/缩放)。

显示注解的代码在这里:


 [self.mapView removeAnnotations:self.mapView.annotations];

 for (MyObject *my in self.mydata)
 { 
   MyAnnotation *annotation = [MyAnnotationFactory createAnnotationFor:my];
   [self.mapView addAnnotation:annotation];
 }

 CLLocationCoordinate2D  mycenter;
 mycenter.latitude = -38.967659;
 mycenter.longitude = 172.873534;

 [self.mapView setRegion:MKCoordinateRegionMake(mycenter, MKCoordinateSpanMake(15, 18)) 
               animated:YES];

 [self.mapView setCenterCoordinate:mycenter];

我发现通过设置区域而不对其进行动画处理,即将上面的代码更改为

 [self.mapView setRegion:MKCoordinateRegionMake(mycenter, MKCoordinateSpanMake(15, 18)) 
               animated:NO];

问题消失了,MKMapView 在 iOS7 上也表现良好。

如果您知道为什么会发生这种情况,以及为什么它只发生在 iOS7 而不是早期版本中,我将不胜感激。

最佳答案

另外,检查您的 mapView:regionDidChangeAnimated: 和 mapView:regionWillChangeAnimated: 方法。只实现一个可能对您有用;您可能不需要实现其中之一。

关于objective-c - MKMapView - setRegion :animated makes MKMapView unresponsive on iOS7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19564033/

相关文章:

ios - _PFFaultHandlerLookupRow 保存子上下文时崩溃

java - @test注解的后台发生了什么?

c++ - 如何防止 Cocoa 框架中的 C++ 名称重整

java - 即将将(Java)库移植到 Objective-C : Methodology?

ios - 在 iOS 中调用属性的 getter 函数时

Java:无法通过反射访问注释

java - 注释来解决接口(interface)未实现方法的所有错误?

uiviewcontroller - IOS7 的滑动 View Controller 菜单和状态栏问题

swift - 尝试连接到我的服务器时使用 Alamofire 和 swift 出现 401 错误

objective-c - 复制 iOS 7 主屏幕动画