首页 > 代码库 > iOS 大头针的基本使用
iOS 大头针的基本使用
1.导入头文件
#import <MapKit/MapKit.h>#import <CoreLocation/CoreLocation.h>
2.为成员变量mapView添加手势识别
1 - (void)viewDidLoad2 {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 @optional12 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.
iOS 大头针的基本使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。