我是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;
}
答案 0 :(得分:2)
您不应在viewforannotation中编辑地图的位置。当地图需要在地图上绘制注释时,会调用viewForAnnotation,如果在执行此操作时更改了移动MKMapView的地图部分,则会绘制不同的注释,因此从viewForAnnotation中进行调用再次viewForAnnotation ==&gt;无限循环。
因此,如果你说代码在没有它的情况下工作正常,那么删除它并开心。这是我对任何代码的建议。如果应用程序没有它,请将其删除。用不必要的代码填补你的应用程序是没有意义的。