系统提供的pin只有红绿蓝三种,爱美的朋友都想自定义pin,可是自定义的pin有时候图片大小或图片指针的方向问题,往往在放大模式图片指针指向的终点不一样。MKAnnotationView系统有个参数可以调节, 打开头文件你会看到这样一段代码:
- // By default, the center of annotation view is placed over the coordinate of the annotation.
- // centerOffset is the offset in pixels from the center of the annotion view.
- @property (nonatomic) CGPoint centerOffset;
现在你很清楚如何做了吧。
示例代码:
- - (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation
- {
- if(![annotation isKindOfClass:[MyAnnotation class]]) // Don't mess user location
- return nil;
- MKAnnotationView *annotationView = [aMapView dequeueReusableAnnotationViewWithIdentifier:@"spot"];
- if(!annotationView)
- {
- annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"spot"];
- annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
- [(UIButton *)annotationView.rightCalloutAccessoryView addTarget:self action:@selector(openSpot:) forControlEvents:UIControlEventTouchUpInside];
- annotationView.enabled = YES;
- annotationView.canShowCallout = YES;
- annotationView.centerOffset = CGPointMake(7,-15);
- annotationView.calloutOffset = CGPointMake(-8,0);
- }
- // Setup annotation view
- annotationView.image = [UIImage imageNamed:@"pinYellow.png"]; // Or whatever
- return annotationView;
- }