我有一個超過200個對象的數組,我試圖通過它們中的每一個執行循環。用不同針腳顏色映射視圖註釋
每個對象都有一個yes/no字段,我想根據yes/no值顯示一個不同的彩色標記。
從我所看到的情況來看,我的循環先通過每個對象,然後在每個對象的末尾添加所有註釋。
由於我在我的循環中通過數組中的yes no值執行檢查,當所有註釋都添加到我的映射中時,它將使用來自數組中最後一個對象的yes/no值對全部。
如何獲取標記以便根據每個單獨元素的「是/否」值進行區分?
我的代碼是
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];
}
我的註釋代碼如下
- (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;
}
和current_yesno
在我的.h文件中聲明。
感謝您的答覆。我如何將屬性yesno添加到MapViewAnnotation? – user1096447
在MapViewAnnotation.h中,把'@property(nonatomic,assign)BOOL yesno;'和MapViewAnnotation.m放在'@synthesize yesno;' – Anna
謝謝Anna,stil一個相關的答案。 –