如何在地图上制作像foursquare朋友地图而不是图钉的自定义图钉?
图片在这里,http://www.socialmedianews.com.au/wp-content/uploads/2010/07/foursquare-friends-map.png
答案 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;
}