我创建了一个我添加到MKMapView的注释.如何使用自定义图像而不是标准的红色针?
@interface AddressAnnotation : NSObject<MKAnnotation> { CLLocationCoordinate2D coordinate; Nsstring *title; Nsstring *subtitle; MKPinAnnotationColor pinColor; } @property (nonatomic,retain) Nsstring *title; @property (nonatomic,retain) Nsstring *subtitle; @property (nonatomic,assign) MKPinAnnotationColor pinColor; @end
解决方法
MKMapView从其委托方法获取其引脚视图
mapView:viewForAnnotation:所以你必须:
>将视图控制器设置为地图的代表.
>实现mapView:viewForAnnotation:在你的控制器中.
将控制器设置为委托
@interface MapViewController : UIViewController <MKMapViewDelegate>
使用委托协议标记接口.这就让我们将控制器设置为Interface Builder(IB)中的MKMapView代理.打开包含地图的.xib文件,右键单击MKMapView,然后将代理插槽拖到控制器上.
如果你喜欢使用代码代替IB,添加self.yourMapView.delegate = self;在控制器的viewDidLoad方法中.结果将是一样的.
实现mapView:viewForAnnotation:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { // this part is boilerplate code used to create or reuse a pin annotation static Nsstring *viewId = @"MKPinAnnotationView"; MKPinAnnotationView *annotationView = (MKPinAnnotationView*) [self.mapView dequeueReusableAnnotationViewWithIdentifier:viewId]; if (annotationView == nil) { annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:viewId] autorelease]; } // set your custom image annotationView.image = [UIImage imageNamed:@"emoji-ghost.png"]; return annotationView; }
原文地址:https://www.jb51.cc/c/116190.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。