在我的应用程序中,我使用MKPolyline跟踪用户的路径。有时候(不是所有的时候,我都不明白),当一个新的线段被添加到地图中时,整条线就会闪烁。有时情况并非如此。这是用来添加行的代码:
CLLocationCoordinate2D coords[2];
coords[0] = CLLocationCoordinate2DMake(newLocation.coordinate.latitude, newLocation.coordinate.longitude);
coords[1] = CLLocationCoordinate2DMake(oldLocation.coordinate.latitude, oldLocation.coordinate.longitude);
MKPolyline* line = [MKPolyline polylineWithCoordinates:coords count:2];
[mapView addOverlay:line];我是不是遗漏了什么?
编辑:这通常发生在应用程序被发送到后台后返回。但我不太清楚为什么,因为我只是添加一个覆盖,而不是修改整个mapView.overlays数组。...right?
发布于 2011-12-08 00:23:58
这可能与此无关,但苹果公司在“位置意识编程指南”(Location感知编程指南)的管理Map的覆盖对象部分中确实声明了.
因为映射视图是一个接口项,所以对
overlays数组的任何修改都应该同步,并在应用程序的主线程上执行。
发布于 2011-12-08 00:09:25
我认为你最好的选择是在你给用户显示地图之前先把闪光灯处理掉。
尝试以下方法之一:
[mapView setNeedsDisplay];或
if ([[mapView overlays] count] > 0){
[[[mapView overlays] lastObject] setNeedsDisplay];
}将这些内容放入您的"viewWillAppear“方法或AppDelegate.m中的"applicationWillEnterForeground”方法中。
https://stackoverflow.com/questions/7923751
复制相似问题