Mam tablicę zawierającą ponad 200 obiektów i próbuję wykonać pętlę przez każdy z nich.Adnotacje widoku mapy z różnymi kolorami pinów
Każdy obiekt będzie miał pole Tak/Nie i chcę wyświetlić inny kolorowy znacznik zależny od tej wartości tak/nie.
Z tego, co widzę, dzieje się, że moja pętla przechodzi najpierw przez każdy obiekt, a następnie wszystkie adnotacje są dodawane na końcu dla każdego obiektu.
Ponieważ wykonuję kontrolę w obrębie mojej pętli przez tablicę przy wartości yes no, gdy cała adnotacja jest dodana do mojej mapy, użyje ona wartości yes/no z ostatniego obiektu w tablicy, gdy przejdzie do wykresu dla wszystkich.
Jak mogę to zrobić, aby znacznik był różny w zależności od wartości tak/nie dla każdego elementu?
Mój kod jest
for (i = 0; i < [appDelegate.itemArray count]; i++) {
item_details *tempObj = [appDelegate.itemArray objectAtIndex:i];
location.latitude = [tempObj.lat floatValue];
location.longitude = [tempObj.lon floatValue];
current_yesno = tempObj.yesno;
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc]initWithTitle:tempObj.name andCoordinate:location];
[self.mapView addAnnotation:newAnnotation];
[newAnnotation release];
}
z mojego kodu adnotacji następująco
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
if(current_yesno == YES){
annView.pinColor = MKPinAnnotationColorGreen;
}
else
{
annView.pinColor = MKPinAnnotationColorRed;
}
annView.animatesDrop=NO;
annView.canShowCallout = YES;
annView.calloutOffset = CGPointMake(-5, 5);
return annView;
}
i current_yesno
jest zadeklarowane w moim pliku .h.
Dzięki za odpowiedź. Jak dodać właściwość yesno doMapViewAnnotation? – user1096447
W MapViewAnnotation.h, umieść '@property (nonatomic, assign) BOOL yesno;' aw MapViewAnnotation.m wstaw '@synthesize yesno;' – Anna
Dzięki Anna, stil a releynna odpowiedź. –