来自我的自定义MKAnnotationView的代码:
- (id)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
if (self) {
self.canShowCallout = YES;
_pinView = [[CustomPinView alloc] init];
[self addSubview:_pinView];
}
return self;
}
我的VC代码:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{
MapAnnotationView *pinView = nil;
pinView = (MapAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"lol"];
if (pinView == nil){
pinView = [[MapAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"lol"];
}
return pinView;
}
我做错了什么,请帮助我。
答案 0 :(得分:2)
好吧,我会自己做。
您应该将图片设置为具有子视图大小的自定义MKAnnotationView。
只有当你的MKPointAnnotation有描述字符串(不是nil或@“”)时才应设置canShowCallout = YES,否则你应该设置canShowCallout = NO
在该方法之后将调用didSelectAnnotationView。希望对某人有所帮助。