Я пытаюсь «uncenter» вид карты и удалить все аннотации. Причиной этого является то, что MAPview будет использоваться различными контроллерами отображения для отображения различных аннотаций и местоположения. Что происходит сейчас в том, что я использую «удалить аннотации» метод и я удаляю их, но карта остается в центре на месте и, таким образом, когда новые аннотаций приходят, он не двигается. Есть ли способ сбросить регион и если да, то какое значение сбросить его. Я попробовал ноль, ноль и некоторые расчетное значение, но «ядро анимация» говорит, что они все недействительны. Как я могу получить, что для уменьшения и обратно в моих новых аннотациях?
здесь некоторый код
-(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];
}
То на центрирования Митосе я использую
- (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;
}
Это «еще» кусок ждет, пока синий мрамор падает в то центрирует карту. Проблема у меня есть с той частью, что, когда я вернуться к предыдущему View Controller я удалить все аннотации, поэтому, когда я вернусь в расположение пользователя (по некоторым причинам) не выскакивает обратно. Как я получаю это поп обратно?
Заранее спасибо, ребята













