如何制作自定义图钉4sq应用程序的朋友地图

时间:2011-06-19 09:31:42

标签: iphone annotations mapkit

如何在地图上制作像foursquare朋友地图而不是图钉的自定义图钉?

图片在这里,http://www.socialmedianews.com.au/wp-content/uploads/2010/07/foursquare-friends-map.png

3 个答案:

答案 0 :(得分:0)

您需要使用自定义MKAnnotationView

  

您可以使用MKAnnotationView类   as或子类它提供自定义   根据需要行为。图像属性   该类允许您设置   注释视图的外观   没有直接子类化。您   也可以创建自定义子类   一个方便,并使用它们来   已知状态下的注释视图。对于   例如,MKPinAnnotationView   子类初始化的内容   针脚图像的注释视图。

答案 1 :(得分:0)

您想要用框架肖像替换自定义图钉。您可以使用Quartz绘制框架,或将框架添加为第二个透明图像。我会做第二次将以下内容添加到MKAnnotationView:

- (id)initWithAnnotation:(id <MKAnnotation>)annotation 
         reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
    if (self != nil) {
        self.opaque = NO;
        self.frame = CGRectMake(0,0, self.portraitImage.size.width, self.portraitImage.size.height);
    }
    return self;
}

- (void)drawRect:(CGRect)rect {
        [self.frameImage drawInRect:CGRectMake(0, 0, frameImage.width, frameImage.height)];
        [self.portraitImage drawInRect:CGRectMake(0, 0, portraitImage.width, portraitImage.height)];
}

答案 2 :(得分:0)

- (MKAnnotationView *)mapView:(MKMapView *)mv viewForAnnotation:(id <MKAnnotation>)annotation      {
MKAnnotationView *pinView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"pinView"];

 if (!pinView) {
    pinView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pinView"] autorelease];
    pinView.image = [UIImage imageNamed:@"SPOON4.png"];
    pinView.frame = CGRectMake(-30, 0, 70, 67.5); 
    //pinView.animatesDrop = YES; can't animate with custom pin images
    pinView.canShowCallout = YES;


    UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    pinView.rightCalloutAccessoryView = rightButton;

} else {
    pinView.annotation = annotation;
}
if (annotation == mapView.userLocation){
    return nil; //default to blue dot
}
return pinView;
}