Mam widok mapy, w którym współrzędne adnotacji są ciągle aktualizowane, ale kiedy używam funkcji setCoordinate, adnotacja nie porusza się. Jak odświeżyć adnotacje, aby odzwierciedlić ich współrzędne?Adnotacje odświeżania iOS na widoku mapy
- (void)updateUnits {
PFQuery *query = [PFQuery queryWithClassName:@"devices"];
[query whereKeyExists:@"location"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
for (PFObject *row in objects) {
PFGeoPoint *geoPoint = [row objectForKey:@"location"];
CLLocationCoordinate2D coord = { geoPoint.latitude, geoPoint.longitude };
for (id<MKAnnotation> ann in mapView.annotations) {
if ([ann.title isEqualToString:[row objectForKey:@"deviceid"]]) {
[ann setCoordinate:coord];
NSLog(@"latitude is: %f" , coord.latitude);
NSLog(@"Is called");
break;
}
else {
//[self.mapView removeAnnotation:ann];
}
}
}
}
else {
}
}];
}
Można to zrobić po prostu zmieniając współrzędne w obiekcie adnotacji. Nie wymaga usunięcia adnotacji, a następnie dodania jej do mapy, aby zmiana zaczęła obowiązywać. –