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框 ...
随机推荐
- java HastTable实现
public class HashTable{ private String[] name; //关键字 private int sum; //容量 public static void ...
- 纯css切换左侧菜单
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Unity3d shader之卡通着色Toon Shading
卡通着色的目的是为了让被着色物体显得过渡的不那么好,明暗交界线很明显,等等卡通风格的一系列特征, 也叫Non-photorealisticrendering非真实渲染 重点要做到两点: 1. 描 ...
- HDOJ 1716 排列2(next_permutation函数)
Problem Description Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表四张卡 ...
- hdu4281 区间dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4283 #include<iostream> #include<algorithm&g ...
- poj 1050 To the Max (简单dp)
题目链接:http://poj.org/problem?id=1050 #include<cstdio> #include<cstring> #include<iostr ...
- hdoj 1061 Rightmost Digit【快速幂求模】
Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- ASP.NET与SOAP协议使用记录
近期初次接手一个公司的管理系统开发任务,因为公司需要有Android,IOS客户端,又要求有PC端的网页客户端....对服务请求的要求自然也就落在了统一接口访问上了.... 使用ASP.NET的WEB ...
- 正经学C#_变量与其转换:《c#入门经典》
上一节上了变量.末尾简单了说了下 命名方式,声明变量. 命名方式在C#,或者任何语言都是非常重要的一门学问.值得去深入思考一下.变量名的优化与其工作效率的提升,有很多大的关系的. 声明变量,上节介绍了 ...
- thinkphp 重定向redirect
/** * URL重定向 * @param string $url 重定向的URL地址 * @param integer $time 重定向的等待时间(秒) * @param string $msg ...