显示两个不同的注释图像

时间:2015-05-08 22:56:44

标签: ios objective-c annotations mapkit reuseidentifier

我想基于特定的“链”变量显示2种不同类型的注释......我怎么能这样做?这是我现在的代码片段:

pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation  
  reuseIdentifier:PharmacyPinID];

NSString *chainString = tmpAnnotation.chain;
NSString *mapImage = [NSString stringWithFormat:@"map_icon_%@",chainString];
pinView.image = [UIImage imageNamed:mapImage];

谢谢!

1 个答案:

答案 0 :(得分:1)

现在您正在使用通用的MKAnnotationView对象。你想以不同的方式做什么?

简短的回答是做这样的事情:

MKAnnotationView *myAnnotationView;
switch tmpAnnotation.type
{
  case type1:
    myAnnotationView= [[CustomAnnoation1 alloc] initWithAnnotation:tmpAnnotation 
      reuseIdentifier: type1ID];
  case type2:
    myAnnotationView= [[CustomAnnoation2 alloc] initWithAnnotation:tmpAnnotation 
      reuseIdentifier: type2ID];
  default: 
   myAnnotationView= [[MKAnnotationView alloc] initWithAnnotation:tmpAnnotation  
     reuseIdentifier:PharmacyPinID];
}
NSString *chainString = tmpAnnotation.chain;
NSString *mapImage = [NSString stringWithFormat:@"map_icon_%@",chainString];
pinView.image = [UIImage imageNamed:mapImage];

上面的代码假定tmpAnnotation是一个自定义类型,它具有一个属性类型,可以告诉您需要哪种注释视图。 (注释是您想要的符合MKAnnotation协议的任何对象,因此如果需要,它可以具有自定义属性。)

它还假设您有几个不同的MKAnnotationView自定义子类。