引脚颜色不变

Posted

技术标签:

【中文标题】引脚颜色不变【英文标题】:Pin Color not Changing 【发布时间】:2013-09-13 07:33:56 【问题描述】:

如果图钉的标题是“HQ”,我创建了一个 if-then 语句来显示一个紫色图钉。绿色引脚正确显示。有谁知道为什么我的紫色针脚颜色还是红色?

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation

    if([annotation isKindOfClass:[MyAnnotation class]])

    
        static NSString *annotationIdentifier=@"annotationIdentifier";

        MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier];

        if(annotationView)
        
            annotationView.annotation = annotation;
        
        else
        
            annotationView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:annotationIdentifier];
            if([[annotationView.annotation title] isEqualToString:@"HQ"])
            

                //The pin for the HQ should be purple
                annotationView.pinColor = MKPinAnnotationColorPurple;
                [annotationView setAnimatesDrop:YES];

            
            else
            
                //All other new pins should be "green" by default
                annotationView.pinColor = MKPinAnnotationColorGreen;
                annotationView.canShowCallout = YES;
                annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
                [annotationView setAnimatesDrop:YES];

            
        


        return annotationView;

    

    return nil;


【问题讨论】:

【参考方案1】:

地图重用注释视图(或提供这样做)

与 tableView 的单元重用相同。


现在在初始化时设置引脚颜色,但在重复使用时不设置。所以一个大头针总是相同的颜色。

针对不同的情况使用不同的重用标识符!

 static NSString *annotationIdentifier= ([annotation.title isEqualToString:@"HQ"]) ? @"HQ" : "OTHER";

【讨论】:

以上是关于引脚颜色不变的主要内容,如果未能解决你的问题,请参考以下文章

图像的色调颜色不变

文本字段背景颜色不变

Android状态栏颜色不变

Android中Listview点击item不变颜色以及设置listselector 无效

Snackbar 操作文本颜色不变

Matplotlib - 如何删除颜色条但保持热图位置不变