Sto cercando di vista uncenter mappa e rimuovere tutte le annotazioni. La ragione di questo è che il mapview verrà utilizzato da diversi controllori di visualizzazione per visualizzare diverse annotazioni e posizioni. Quello che sta succedendo ora è che io sto usando il metodo rimuovere le annotazioni e io rimuove loro, ma la mappa rimane centrata sul posto e, quindi, quando le nuove annotazioni entrare, ma non si muove. C'è un modo per ripristinare la regione e, in caso affermativo, quale valore si ripristina a. Ho provato a zero, zero e un valore calcolato, ma l'animazione core dice che sono tutti validi. Come faccio ad avere che per diminuire e schienale in sulle mie nuove annotazioni?
qui è un codice
-(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];
}
Ecco i methos recenter sto usando
- (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;
}
Questo pezzo altro aspetta fino a quando scende il marmo blu in poi ricentrata mappa. Il problema che ho con quella parte è che quando tornerò al precedente controller Visualizza i Togliere tutte le annotazioni, così quando torno nella posizione d'uso (per qualche motivo) non pop torna in. Come faccio ad avere questo al pop indietro nel?
grazie in anticipo ragazzi













