在viewcontroller.m中为现有引脚添加叠加层

时间:2011-01-24 14:00:31

标签: iphone objective-c cocoa-touch ios annotations

我是编程和obj-c的新手,目前正在开发基于地图的iphone应用程序,它将定位不同的运动设施。我希望每个引脚显示不同的叠加层,例如图片叠加层会很好,我会将图片添加到资源文件夹中,我希望每个图钉通过单击显示不同的图片。我的例子只包括一个带有坐标的针脚。 现在,我现在想知道从哪里开始,希望你能帮助我!

提前感谢:)

这是我的代码:

[mapView addAnnotation:[MapLocation mapLocationtWithTitle:@"Beckomberga Sim och Sporthall" subtitle:@"Söderberga Allé 80" andCoordinate:(CLLocationCoordinate2D){ 59.35817, 17.89740 }]]; 
}

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
 if([annotation isKindOfClass:[MapLocation class]])
 {
  MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PinAnnotation"];
  pin.canShowCallout = YES;
  pin.animatesDrop = NO;
  pin.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];


   pin.pinColor = MKPinAnnotationColorRed;

   pin.pinColor = MKPinAnnotationColorGreen;

  [pin autorelease];
  return pin;
 }
 return nil;
}

1 个答案:

答案 0 :(得分:0)

尤,

以下是您需要做的事情:

  • 创建一个MKAnnotation子对象,代表您的位置,SportsFacilityLocation
  • 该对象将包含标题,副标题和位置字段。这是为了符合MKAnnotation协议
  • 接下来你需要一个对象,它将是MKAnnotationView,SportsFacilityMapView的子类。
  • 最后在viewForAnnotation委托方法中,您需要检查每个注释类型 从那个注释类型,你将决定返回你的SportsFacilityMapView

检查有关如何实现Annotation的文档,然后检查AnnotationView。我在家里有一些示例代码,如果您需要,我会稍后发布。祝你好运!