相关疑难解决方法(0)

用不同的针颜色映射视图注释

我有一个包含200多个对象的数组,我正试图通过每个对象执行循环.

每个对象都有一个是/否字段,我想显示一个不同的颜色标记,取决于是/否值.

从我所看到的情况发生,我的循环首先遍历每个对象,然后在每个对象的末尾添加所有注释.

因为当我将所有注释添加到我的地图时,在我的循环中通过数组对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];            
            } 
Run Code Online (Sandbox Code Playgroud)

我的注释代码如下

- (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 …
Run Code Online (Sandbox Code Playgroud)

annotations objective-c mapkit ios

5
推荐指数
1
解决办法
8078
查看次数

标签 统计

annotations ×1

ios ×1

mapkit ×1

objective-c ×1