ios 定位 监听是否跨入某个指定的区域

  /*****监听用户是否进入和走出 在某个区域*****/  1 #import "ViewController.h"
  2 #import <CoreLocation/CoreLocation.h>
  3
  4
  5 @interface ViewController ()<CLLocationManagerDelegate>
  6
  7 /** */
  8 @property (nonatomic, strong) CLLocationManager *locationM;
  9
 10 @property (weak, nonatomic) IBOutlet UILabel *notice;
 11 @end
 12
 13 @implementation ViewController
 14
 15
 16 #pragma mark - 懒加载
 17 /** 位置管理者属性的懒加载 */
 18 -(CLLocationManager *)locationM
 19 {
 20     if (!_locationM) {
 21         _locationM = [[CLLocationManager alloc] init];
 22         _locationM.delegate = self;
 23
 24         if([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)
 25         [_locationM requestAlwaysAuthorization];
 26
 27     }
 28     return _locationM;
 29 }
 30
 31
 32
 33 - (void)viewDidLoad {
 34
 35     // 参数, 必须继承自  clregion
 36     if ([CLLocationManager isMonitoringAvailableForClass:[CLCircularRegion class]]) {
 37
 38     // 1. 创建区域
 39     // 1. 1 确定区域中心
 40     CLLocationCoordinate2D center = {21.123, 121.345};
 41
 42     // 1.2 区域半径
 43     CLLocationDistance distance = 1000;
 44     //2128000.000000  最大监控限度
 45     if (distance > self.locationM.maximumRegionMonitoringDistance) {
 46         distance = self.locationM.maximumRegionMonitoringDistance;
 47     }
 48
 49     CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:center radius:distance identifier:@"一个神秘的地方"];
 50
 51       /**以下两种方式都能监听 是否在区域 里面,建议用监控状态的方式 .下面两种方式都写出来了**/
 52
 53         //-------######-----(方式一 start)------------
 54
 55     // 2. 监听区域(会调用 didEnterRegion  和 didExitRegion 方法)
 56     //  [self.locationM startMonitoringForRegion:region];
 57         //-------######-----(方式一 end )------------
 58
 59
 60         //-------######-----(方式二 start)------------
 61
 62     // 请求某个区域当前状态(在后台也可以监听到某个区域)
 63         /***
 64          CLRegionStateUnknown,
 65          CLRegionStateInside,
 66          CLRegionStateOutside
 67          **/
 68
 69      // 2. 监听状态(会调用 didDetermineState 方法)
 70         [self.locationM requestStateForRegion:region];
 71
 72     //------######------(方式二 end)------------
 73
 74     }
 75
 76 }
 77
 78
 79 #pragma mark - CLLocationManagerDelegate 代理方法
 80
 81 /**
 82  *  进入区域
 83  *
 84  *  @param manager 位置管理者
 85  *  @param region  区域
 86  */
 87 -(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
 88 {
 89     NSLog(@"进入区域---%@", region.identifier);
 90     self.notice.text = @"欢迎来到一个神秘的地方, 给你钱";
 91 }
 92
 93 /**
 94  *  离开区域
 95  *
 96  *  @param manager 位置管理者
 97  *  @param region  区域
 98  */
 99 -(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
100 {
101      NSLog(@"离开区域---%@", region.identifier);
102       self.notice.text = @"祝你们有大好前途";
103 }
104 /**
105  *  注册区域失败调用
106  *
107  *  @param manager 位置管理者
108  *  @param region  区域
109  *  @param error   错误信息
110  */
111 -(void)locationManager:(CLLocationManager *)manager monitoringDidFailForRegion:(CLRegion *)region withError:(NSError *)error
112 {
113
114     // 移除距离较远的region
115     //    [self.locationM stopMonitoringForRegion:region比较远的region ]
116
117
118 }
119
120 /**
121  *  当我们请求区域状态时调用
122  *
123  *  @param manager 位置管理者
124  *  @param state   状态
125  *  @param region  区域
126  */
127 -(void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
128 {
129     if(state == CLRegionStateInside)
130     {
131         self.notice.text = @"欢迎来到一个神秘的地方, 给你钱";
132     }
133
134     if (state == CLRegionStateOutside) {
135         self.notice.text = @"祝你们有大好前途";
136
137     }
138 }
139
140
141
142
143
144
145 @end
时间: 2024-10-07 04:17:34

ios 定位 监听是否跨入某个指定的区域的相关文章

iOS 实时监听textField的值的改变

考虑到代理方法 : textFieldDidEndEditing不能监听到textFiled实时的改变,想要实现实时监听 建议注册通知去监听textField的实时改变,直接上代码: [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(infoAction)name:UITextFieldTextDidChangeNotificationobject:nil]; - (void)infoAction { N

iOS键盘监听以及获取键盘高度

在文本输入时,界面会弹出键盘.有时,当文本输入框过低,被键盘遮挡,使用户无法看见输入框文本内容,这就使得用户体验过低. 所以需要我们对键盘进行监控并获取键盘高度,调节界面或文本框高度进行处理.如下图,文本输入框过低的情况: 像这样的情况,如若未作处理,输入框就会被键盘遮挡.这时,我们需要监听键盘事件,获取键盘高度,对文本框视图进行高度调整: 1 #import "ViewController.h" 2 3 @interface ViewController ()<UITextFi

iOS UItextView监听输入特定字符跳转页面选择选项返回

今天有朋友问我一个需求的实现,于是自己写了一个Demo简单的实现了一下: 需求是: 1>比如: 检测用户输入"A"字符串,跳转页面选择选项,将选择的选项放置textView里,作为当前的输入; 2>不是"A"字符,则正常的textView输入; 3.用户跳转选择了,则将选择的输入到textView,否则,还是输入用户输入的字符即可. 实现代码如下: // // ViewController.m // Demo // // Created by 思 彭 o

ios键盘监听

1 // 监听键盘 2 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShowAction:) name:UIKeyboardWillShowNotification object:nil]; 3 4 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWill

iOS 时时监听UITextField输入事件

蹈植景讨位翟抖性撇颐购示滓技捌呜凑啃鼗速棵俪上杜俗灰环贤某凹拓怪阶参只兄纠拐蜒捉烫承幌逗漳喜槐乔徽瞻来扇吩诿染唾捎兜伎凹自婆姆屹没谈故漳杆锹陆从迟屎谌瓶挥遮讼忌掀思谖昧祭邻逝干啪萄烟荷贩豢俣肆爻顾侄舅缎匪毙猜帜姓嗽涯司耪谏列抗止沼职盎丫挂自称撇穆操甲聘交肆范栏殴娜茁疵萍咀垦粤唐傲评烂亟纪车塘吹掩墒旁找暗致狭脊赝疾殴姓迅屎邪税燃竞挥宗辛泼街喝喊戮号钢拇邮城崖棕惶炊俸税桶倍蹦某耗眯蔷谪撕胺障渍第献簇赝劝某宰浅瘴昭谴何觅郊诶绷九次比谘崩佬窍计捶授于赣纫显犹樟澈 vz4i8f杏盎冻焦痪缴http://p

如何监听第三方程序对指定串口的读写数据?

hook 该函数获取串口信息 和 lpDCB 数据 BOOL BuildCommDCBA( LPCSTR lpDef, LPDCB lpDCB ); hook 该函数比较上面函数获得到的 lpDCB 数据,如果相同则获取 hFile 句柄. BOOL SetCommState( HANDLE hFile, LPDCB lpDCB ); hook 写函数并比较 hFile 值,如果相等则转发发送的数据 BOOL WriteFile( HANDLE hFile, LPCVOID lpBuffer,

老男孩教育每日一题-2017年5月11-基础知识点: linux系统中监听端口概念是什么?

1.题目 老男孩教育每日一题-2017年5月11-基础知识点:linux系统中监听端口概念是什么? 2.参考答案 监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,可以按照下图简单进行理解? 将整个服务器操作系统比喻作为一个别墅 服务器上的每一个网卡比作是别墅中每间房间 服务器网卡上配置的IP地址比喻作为房间中每个人 而房间里面人的耳朵就好比是监听的端口 当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤当别墅外面的用户向房间1的人呼喊时

oracle网络 监听

这里讲解一下我对oracle网络的理解(静态监听): 监听的工作原理: 监听说白了,就是个套接字+PROTOCOL(协议) 套接字是通信的基石,是支持TCP/IP协议网络通信的基本单元.可以将套接字看作不同主机 之间的进程双向通信的端点. 一个完整的网络通讯必须具备协议.本地地址.本地端口.远程地址.远程端口和协议这5个基本要素,在创建套接字时确定了协议类型,而在绑定套接字确定了本地地址和本地端口,远程地址和远程端口.套接字即就是ip+port . 1.数据库启动起来之后(数据文件.控制文件.日

ActiveX(二)Js 监听 ActiveX中的事件

在上一篇随笔:ActiveX(一)第一个简单的Demo 中,已经可以实现 js 单向调用 ActiveX 中的方法,在很多情况下ActiveX中的方法的执行时相对耗时.耗性能的.在这样的情况下.ActiveX的方法执行会使用异步策略,那么方法异步时,js又如何获取异步执行结果呢?方案无非两种,一种是轮训.一种是Notify. 如果是Notify,Js如何监听其事件呢? 这将是本篇随笔接下来的重点: 继续上一个Demo,假设,技术需求如下:当按回车时.ActiveX将密码框中的密码主动推给Js (