Am încercat să vizualizarea „uncenter“ hartă și îndepărtați toate adnotările. Motivul pentru aceasta este faptul că mapView va fi utilizat de către diferite controlere vizualizare pentru a afișa diferite adnotări și locații. Ceea ce se întâmplă acum este că eu sunt, folosind metoda „elimina adnotările“ și le elimină, dar harta rămâne centrată pe loc și, prin urmare, atunci când adnotări noi vin, nu se mișcă. Există o modalitate de a reseta regiune și, dacă da, ce valoare resetez l. Am încercat zero, zero și o valoare calculată, dar „animație de bază“, spune ca toate sunt invalide. Cum pot obține că pentru a micșora și înapoi pe noile mele adnotări?
aici este un cod
-(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];
}
Asta e Methos recentrare Sunt folosind
- (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;
}
Această piesă „altceva“ așteaptă până când marmură albastră picături în recentrează apoi pe harta. Problema am cu acea parte este că, atunci când mă duc înapoi la View Controller anterior elimin toate notațiile, așa că atunci când am venit înapoi în locația utilizatorului (pentru un motiv oarecare) nu apare din nou. Cum pot obține acest lucru pentru a pop înapoi în?
Multumesc baieti avans













