Tengo una matriz con más de 200 objetos y estoy tratando de realizar un bucle a través de cada uno de ellos.Anotaciones de vista de mapa con diferentes colores de pin
Cada objeto tendrá un campo de sí/no y quiero mostrar un marcador de color diferente dependiendo de ese valor de sí/no.
Por lo que puedo ver es que mi loop va pasando por cada objeto primero y luego se agrega toda la anotación al final de cada objeto.
Como realizo una comprobación dentro de mi ciclo a través de la matriz en el valor sí no cuando toda la anotación se agrega a mi mapa, usará el valor sí/no del último objeto en la matriz cuando se vaya a trazar para todos.
¿Cómo puedo tenerlo para que el marcador sea diferente dependiendo del valor de sí/no para cada elemento individual?
Mi código es
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];
}
con mi código de anotación de la siguiente manera
- (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;
}
y current_yesno
se declara en mi archivo .h.
Gracias por la respuesta. ¿Cómo agrego la propiedad yesno aMapViewAnnotation? – user1096447
En MapViewAnnotation.h, ponga '@property (no atómico, asigne) BOOL yesno;' y en MapViewAnnotation.m ponga '@synthesize yesno;' – Anna
Gracias Anna, todavía tiene una respuesta relevante. –