1

我想根据特定的“链”变量显示 2 种不同类型的注释......我该怎么做呢?这是我现在拥有的代码片段:

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

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

谢谢!

4

1 回答 1

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 要使用。

于 2015-05-08T23:10:41.673 回答