0
我正在嘗試「uncenter」地圖視圖並刪除所有註釋。原因是mapView將被不同的視圖控制器用來顯示不同的註釋和位置。現在發生的事情是,我正在使用「刪除註釋」方法,並刪除它們,但是地圖保持以當場爲中心,因此當新註釋進入時,它不會移動。有沒有辦法重置區域,如果是的話,我重置它的值是什麼。我試過零,零和一些計算值,但「核心動畫」說他們都是無效的。我如何獲得縮小和回到我的新註釋?Uncenter MkMapView
這裏是一些代碼
-(void)recenterMap {
NSArray *coordinates = [_mapView valueForKeyPath:@"annotations.coordinate"];
CLLocationCoordinate2D maxCoord = {-90.0f, -180.0f};
CLLocationCoordinate2D minCoord = {90.0f, 180.0f};
//NSLog(@"%@", [coordinates description]);
for (NSValue *value in coordinates) {
CLLocationCoordinate2D coord = {0.0f, 0.0f};
[value getValue: &coord];
if(coord.longitude > maxCoord.longitude) {
maxCoord.longitude = coord.longitude;
}
if(coord.latitude > maxCoord.latitude){
maxCoord.latitude = coord.latitude;
}
if(coord.longitude < minCoord.longitude){
minCoord.longitude = coord.longitude;
}
if(coord.latitude < minCoord.latitude){
minCoord.latitude = coord.latitude;
}
}
MKCoordinateRegion region = {{0.0f, 0.0f}, {0.0f, 0.0f}};
region.center.longitude = (minCoord.longitude + maxCoord.longitude)/2.0;
region.center.latitude = (minCoord.latitude + maxCoord.latitude)/2.0;
region.span.longitudeDelta = maxCoord.longitude - minCoord.longitude;
region.span.latitudeDelta = maxCoord.latitude - minCoord.latitude;
[_mapView setRegion: region animated: YES];
}
多數民衆贊成在recenter methos我使用
- (MKAnnotationView *)mapView: (MKMapView *)mapView viewForAnnotation: (id <MKAnnotation>)annotation{
MKAnnotationView *view = nil;
if(annotation != mapView.userLocation){
Annotation *schoolAnn = (Annotation*)annotation;
view = [self.mapView dequeueReusableAnnotationViewWithIdentifier:@"schoolLoc"];
if(nil == view){
view = [[[MKPinAnnotationView alloc] initWithAnnotation:schoolAnn reuseIdentifier:@"schoolLoc"]autorelease];
}
[(MKPinAnnotationView *)view setAnimatesDrop:YES];
[view setCanShowCallout:YES];
}
else {
[self recenterMap];
}
return view;
}
這個「別人」一塊等待,直到藍色大理石下降則recenters地圖。我與那部分的問題是,當我回到以前的視圖控制器我刪除所有註釋,所以當我回來的用戶位置(出於某種原因)不會彈出回來。我如何得到這個流行早在?
在此先感謝球員