ios地图小例子和手势的使用 供大家参考一下呦
最近做了一个小例子 做点笔记 供刚入职场的菜鸟学习,也供自己记忆。
目标:在地图上加上标记 同时复习一下手势的使用
效果图:
具体代码
导入框架:MapKit.framework
创建一个新类 继承NSObject 叫做MyAnnotation 并在后边加上<MKAnnotation>
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface MyAnnotation : NSObject<MKAnnotation>
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;
@end
viemController.m的代码
#import "ViewController.h"
#import <MapKit/MapKit.h>
#import "MyAnnotation.h"
@interface ViewController ()<MKMapViewDelegate>
@property(nonatomic,strong)MKMapView *mapView;//添加一个MApView
@property(nonatomic,strong)MKAnnotationView *annotationView;//添加一个标记view
@end
//对mapView 的响应的设置并将它加到跟视图中
//添加一个标记
//创建手势实现长按能够加一个标记
- (void)viewDidLoad {
[super viewDidLoad];
//对mapView 的响应的设置并将它加到跟视图中
_mapView = [[MKMapView alloc]initWithFrame:self.view.frame];
_mapView.mapType = MKMapTypeStandard;
_mapView.delegate = self;
[self.view addSubview:_mapView];
//对annotation 的设置
_annotationView = [[MKAnnotationView alloc]initWithFrame:self.view.frame];
//添加一个标记
//设置标记
MyAnnotation *annotation = [[MyAnnotation alloc]init];
//设置经纬度
annotation.title = @"中国";
annotation.subtitle = @"河北";
annotation.coordinate =CLLocationCoordinate2DMake(40, 110);
[self.mapView addAnnotation:annotation];
//设置显示标识的内容
[_mapView setCenterCoordinate:annotation.coordinate animated:YES];
//创建手势实现长按能够加一个标记
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
[self.view addGestureRecognizer:longPress];
}
//手势长按的实现
-(void)longPress:(UILongPressGestureRecognizer *)sender
{
//获得点击点的坐标
CGPoint point = [sender locationInView:self.view];
//将点击的地图上点转换成经纬点
CLLocationCoordinate2D Mycoordinate= [self.mapView convertPoint:point toCoordinateFromView:self.mapView];
MyAnnotation *annotation = [[MyAnnotation alloc]init];
annotation.coordinate = Mycoordinate;
annotation.title = @"河北";
annotation.subtitle = @"石家庄"; [self.mapView addAnnotation:annotation]; }
#pragma mark-mapView的代理方法-显示标识的方法
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
//创建一个标识的ID
static NSString *annotationID = @"annotation"; //先从用户的缓存里找大头针视图
MKPinAnnotationView *view = (MKPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:annotationID];
//如果没有大头针视图,自己进行创建
if(!view)
{
view = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:annotationID];
}
//对大头针视图的属性进行设置
//设置标记为传进来的标记 显示气泡 大头针的颜色
view.annotation = annotation;
view.canShowCallout = YES;
view.pinColor = MKPinAnnotationColorRed; //左边的副视图
view.leftCalloutAccessoryView =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"0.png"]]; return view;
}
ios地图小例子和手势的使用 供大家参考一下呦的更多相关文章
- JS操作Cookies的小例子
这篇文章介绍了JS操作Cookies的小例子,有需要的朋友可以参考一下. 您可能感兴趣的文章:js 保存与获取cookie的代码javascript cookie操作实例详解javascript co ...
- Runtime的几个小例子(含Demo)
一.什么是runtime(也就是所谓的“运行时”,因为是在运行时实现的.) 1.runtime是一套底层的c语言API(包括很多强大实用的c语言类型,c语言函数); [runti ...
- 如何在iOS地图上高效的显示大量数据
2016-01-13 / 23:02:13 刚才在微信上看到这篇由cocoachina翻译小组成员翻译的文章,觉得还是挺值得参考的,因此转载至此,原文请移步:http://robots.thought ...
- Java处理文件小例子--获取全国所有城市的坐标
需求:前端展示数据,全国城市的坐标
- [ios3-地图] 如何在iOS地图上高效的显示大量数据 [转]
[转至:http://blog.csdn.net/pjk1129/article/details/17358337] 原文:How To Efficiently Display Large Amoun ...
- C# Newtonsoft.Json解析数组的小例子[转]
https://blog.csdn.net/Sayesan/article/details/79756738 C# Newtonsoft.Json解析数组的小例子 http://www.cnblog ...
- [SpriteKit] 制作瓦片地图小游戏
概述 SpriteKit制作瓦片地图游戏,深入了解2D游戏制作过程 详细 代码下载:http://www.demodashi.com/demo/10703.html 说实话这个2D游戏实战的入门看的我 ...
- iOS:小技巧(不断更新)
记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...
- springmvc入门的第一个小例子
今天我们探讨一下springmvc,由于是初学,所以简单的了解一下 springmvc的流程,后续会持续更新... 由一个小例子来简单的了解一下 springmvc springmvc是spring框 ...
随机推荐
- 对于利用pca 和 cca 进行fmri激活区识别的理解
1.pca 抛开fmri研究这个范畴,我们有一个超长向量,这个超长向量在fmri研究中,就是体素数据.向量中的每个数值,都代表在相应坐标轴下的坐标值.这些坐标轴所组成的坐标系,其实是标准单位坐标系.向 ...
- 【转】MongoDB资料汇总专题
1.MongoDB是什么 MongoDB介绍PPT分享 MongoDB GridFS介绍PPT两则 初识 MongoDB GridFS MongoDB GridFS 介绍 一个NoSQL与MongoD ...
- VS2010 快速写入注释小技巧
/************************************************************************//* *//******************* ...
- 社区发现(Community Detection)算法 [转]
作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现 ...
- Poj 2887-Big String Splay
题目:http://poj.org/problem?id=2887 Big String Time Limit: 1000MS Memory Limit: 131072K Total ...
- poj 1011 搜索减枝
题目链接:http://poj.org/problem?id=1011 #include<cstdio> #include<cstring> #include<algor ...
- hdoj 1599 find the mincost route【floyd+最小环】
find the mincost route Time Limit: 1000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- Python中逗号作用的实例分析
逗号在类型转化中的使用 主要是元组的转换 例如: >>> a=11>>> b=(a)>>> b11>>> b=(a,)>& ...
- SpringMVC存取Session的两种方法 转
方法一:使用servlet-api @Controller public class ManagerController { @Resource private ManagerService mana ...
- JSP视频
web基础 http://pan.baidu.com/s/1Fy7nV