iOS 大头针的基本使用

1.导入头文件

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

2.为成员变量mapView添加手势识别

1 - (void)viewDidLoad
2 {
3     [super viewDidLoad];
4     // 添加手势识别
5     [self.mapView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapMapView:)]];
6 }

3.实现目标方法

 1 - (void)tapMapView:(UITapGestureRecognizer *)tap
 2 {
 3     // 获取所点击view的x,y坐标
 4     CGPoint point = [tap locationInView:tap.view];
 5     // x,y坐标转地理坐标
 6     CLLocationCoordinate2D coordinate = [self.mapView convertPoint:point toCoordinateFromView:tap.view];
 7     // 初始化大头针,之所以初始化大头针,是因为系统的MKAnnotation各项属性都是只读
 8     QKAnnotation *annotation = [[QKAnnotation alloc]init];
 9     // 设置大头针各项属性
10     annotation.title = @"我的大头针";
11     annotation.subtitle = @"我的大头针--子标题";
12     annotation.coordinate = coordinate;
13     // 在地图上添加大头针
14     [self.mapView addAnnotation:annotation];
15 }

3.1系统MKAnnotation各项属性,都是只读的

 1 #import <CoreGraphics/CoreGraphics.h>
 2 #import <CoreLocation/CoreLocation.h>
 3 #import <MapKit/MKFoundation.h>
 4
 5 @protocol MKAnnotation <NSObject>
 6
 7 // Center latitude and longitude of the annotion view.
 8 // The implementation of this property must be KVO compliant.
 9 @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
10
11 @optional
12
13 // Title and subtitle for use by selection UI.
14 @property (nonatomic, readonly, copy) NSString *title;
15 @property (nonatomic, readonly, copy) NSString *subtitle;
16
17 // Called as a result of dragging an annotation view.
18 - (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate NS_AVAILABLE(10_9, 4_0);
19
20 @end

4.自定义大头针的.h文件,.m文件不需要修改

1 #import <MapKit/MapKit.h>
2
3 @interface QKAnnotation : NSObject<MKAnnotation>
4
5 @property (nonatomic,assign) CLLocationCoordinate2D coordinate;
6 @property (nonatomic, copy) NSString *title;
7 @property (nonatomic, copy) NSString *subtitle;
8
9 @end

#注意:1.MKAnnotation是NSObject, 它是MKAnnotationView的一个属性

      2.MKAnnotationView继承自UIView

    3.自定义大头针继承自NSObject. 遵守<MKAnnotation>协议,就获得了协议里申明的属性和方法.从3.1的代码可以看出,系统MKAnnotation对象,整个.h文件都是协议,coordinate是必须实现的属性,把readOnly删掉,并为coordinate属性添加assign.

时间: 2024-11-29 07:10:48

iOS 大头针的基本使用的相关文章

iOS地图的显示(大头针)

1 1.导入主头文件 2 #import <MapKit/MapKit.h> 3 MapKit框架使用须知 4 MapKit框架中所有数据类型的前缀都是MK 5 MapKit有一个比较重要的UI控件:MKMapView,专门用于地图显示 6 7 2.跟踪显示用户的位置 8 9 设置MKMapView的userTrackingMode属性可以跟踪显示用户的当前位置 10 MKUserTrackingModeNone :不跟踪用户的位置 11 MKUserTrackingModeFollow :跟

【iOS】Mapkit的使用:地图显示、定位、大头针、气泡等

转自:http://blog.csdn.net/dolacmeng/article/details/46594839 以前做项目用高德地图SDK,需要注册账号和AppID,然后下载SDK集成到项目中,比较麻烦,这几天看了下苹果自带的MapKit框架,感觉挺好用,官方文档也介绍得很详细,所以按照官方文档写了个demo,实现地图的显示.显示用户当前位置.放置大头针.弹出气泡等基本功能.希望能帮到刚接触MapKit的朋友~ 1.显示地图 (1)首先我们要像下图这样子打开地图功能: XCode会自动给我

iOS进阶_地图上定位的标志——大头针

一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大头针类,我自定义的为MyAnnotation 大头针: 在iOS开发中经常会标记某个位置,需要使用地图标注,也就是大家俗称的“大头针”.只要一个NSObject类实现MKAnnotation协议就可以作为一个大头针,通常会重写协议中coordinate(标记位置).title(标题).subtitl

iOS 输入地点 显示当前位置地图并用大头针标注

废话不多说 直接上项目工程  ,还是 先看下效果图吧! 项目中有两个文件,chonViewController 和mapLocation文件 ,mapLocation 文件用于地标显示 并有附加信息,昨天做得时候附加信息显示正常,今天想写点博客 却不显示了 ,很郁闷! 新建工程后 记得加入类库,MapKit.framework 具体添加方法 这里不在说明了 下面 看下 chonViewController.h 文件 代码如下: #import <UIKit/UIKit.h> #import &

iOS原生地图开发指南续——大头针与自定义标注

iOS原生地图开发指南续——大头针与自定义标注 出自:http://www.sxt.cn/info-6042-u-7372.html 在上一篇博客中http://my.oschina.net/u/2340880/blog/415360系统总结了iOS原生地图框架MapKit中主体地图的设置与应用.这篇是上一篇的一个后续,总结了系统的大头针视图以及自定义标注视图的方法. 一.先来认识一个协议MKAnnotation 官方文档告诉我们,所有标注的类必须遵守这个协议.所以可以了解,标注这个概念在逻辑属

Ios 高德地图 地图上添加多个大头针 怎么在复用队列中知道我单击的是哪一个大头针

//创建大头针对象     MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init];     //插入大头针的位置     pointAnnotation.coordinate = CLLocationCoordinate2DMake(39.989631, 116.481018);     //大头针的标题     pointAnnotation.title = @"方恒国际";     //大头针的子

iOS:实现MKAnnotation协议,在地图上设置大头针,点击显示具体的位置信息

如何添加大头针(地标): 通过MapView的addAnnotation方法可以添加一个大头针到地图上 通过MapView的addAnnotations方法可以添加多个大头针到地图上 –(void)addAnnotation:(id <MKAnnotation>)annotation; 说明:需要传入一个遵守了MKAnnotation协议的对象 基本步骤为: <1>新建一个遵守MKAnnotation协议的类: @interface MyAnnotation : NSObject 

【iOS开发-111】自定义大头针Annotation以及2种导航划线的方法介绍

(1)自定义大头针Annotation的样式,也就是定义view,主要的方法是如下,传递一个大头针annotation模型,然后返回一个MKAnnotationView,这个MKAnnotationView有一个image属性,设置这个属性,就能设置它的样式了. -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ } 关键提示,这个MKAnnotati

iOS 地图(添加大头针)

首先在工程中导入MapKit.framework库文件 1 #import <UIKit/UIKit.h> 2 3 @interface AppDelegate : UIResponder <UIApplicationDelegate> 4 5 @property (strong, nonatomic) UIWindow *window; 6 7 @end 1 #import "AppDelegate.h" 2 #import "RootViewCon