iOS:MKMapView上画标记图标

本文详细介绍了如何在iOS的MKMapView上创建自定义地图标记,包括实现自定义MKAnnotation和MKAnnotationView,以及在点击标记时弹出自定义对话框的完整步骤。内容涵盖创建自定义类、实现MKAnnotation协议、重写mapView-viewForAnnotation方法以及监听标记点击事件。
摘要由CSDN通过智能技术生成

说明:

MKMapView是地图控件,支持在地图上画各种标记图标。

一、创建自定义地图标记:

1.创建普通类,继承NSObject,实现MKAnnotation:

PopAnotation.h:

// 地图标记
//  PopAnotation.h

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface PopAnotation : NSObject <MKAnnotation>

//经纬度值
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
//标题
@property (nonatomic, copy) NSString *title;
//描述
@property (nonatomic, copy) NSString *desc;
//图标
@property (nonatomic, copy) UIImage *image;

@end

PopAnotation.m:

// 地图标记
//  PopAnotation.m

#import "PopAnotation.h"

@implementation PopAnotation

@end

2.根据经纬度值增加自定义MKAnnotation,需要手动调用:

/*
 自定义方法:根据经纬度值增加自定义MKAnnotation标记图标
 */
- (void)addItemAnotation2{
    //创建有经纬度值的标记图标
    PopAnotation *popA = [[PopAnotation alloc] init];
    popA.title = @"pop标题";
    popA.desc = @"pop描述";
    popA.image = [UIImage imageNamed:@"pop1"];
    //根据经纬度创建点
    CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(116.4, 39.9);
    popA.coordinate = coordinate;
    
    //将标记图标加入mapView中
    [self.mapView addAnnotation:popA];
}

4.重写mapView-viewForAnnotation方法,创建自定义MKAnnotation,替换系统MKAnnotationView中的annotation:

/*
 MKMapViewDelegate方法:改变地图标记样式
 */
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{
    if([annotation isKindOfClass:[PopAnotation class]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值