[mv setRegion:region animated:yes]的目的;

时间:2014-01-20 18:23:45

标签: objective-c mkmapview

我是IOS开发的初学者。所以希望有人能用一些细节来解释它。该方法用于viewforannotation。

如果我保留

[mv setRegion:region animated:yes] 

在函数结束时,当我放大地图时,代码将以某种方式处于无限循环中。

如果我删除它,mapview工作得很好。

由于我没有编写代码,因此我没有看到使用该行的目的。有人能告诉我这条线是否必要?

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id < MKAnnotation >)annotation {

 UIButton *abutton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
 [annotationView setRightCalloutAccessoryView:abutton];

 MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(annotation.coordinate, 8000, 8000);
 [mapview setRegion:region animated:YES]; 

 return annotationView;
}

1 个答案:

答案 0 :(得分:2)

您不应在viewforannotation中编辑地图的位置。当地图需要在地图上绘制注释时,会调用viewForAnnotation,如果在执行此操作时更改了移动MKMapView的地图部分,则会绘制不同的注释,因此从viewForAnnotation中进行调用再次viewForAnnotation ==&gt;无限循环。

因此,如果你说代码在没有它的情况下工作正常,那么删除它并开心。这是我对任何代码的建议。如果应用程序没有它,请将其删除。用不必要的代码填补你的应用程序是没有意义的。