Dezoom以编程方式崩溃

时间:2014-05-21 07:05:55

标签: ios mkmapview mapkit mkcoordinateregion

我在MKMapView上有一个zoom / dezoom按钮。缩放正在工作,但当用户处于最大缩放级别时,dezoom会崩溃。我有例外:

'NSInvalidArgumentException', reason: 'Invalid Region <center:+37.17818069, -96.05458069 span:+237.74976671, +218.02936959>'

有时使用NaN值。 如何检查下一个区域的有效性?

这是我的代码

MKCoordinateRegion region = self.mapView_apple.region;
region.span.latitudeDelta *= 2.0;
region.span.longitudeDelta *= 2.0;
self.mapView_apple.region = region;

1 个答案:

答案 0 :(得分:0)

基于Chan的评论,这是我的解决方案:

MKCoordinateRegion region = self.mapView.region;
MKCoordinateSpan newSpan = region.span;
newSpan.latitudeDelta *= 2.0; // divide for zooming and change the value if you want
newSpan.longitudeDelta *= 2.0;
if(newSpan.latitudeDelta < 180.f && newSpan.longitudeDelta < 180.f) {
    region.span = newSpan;
    [self.mapView setRegion:region animated:YES];
}

谢谢!