高仿系统指南针,方向数据是地磁航向数据,有定位地理位置信息和地磁方向信息,可以和系统的指南针对比看一看。
一、运行效果
二、实现过程
1.继承于UIView创建一个带刻度标注的视图ScaleView,利用UIBezierPath和CAShapeLayer、UILabel,默认0刻度(北)在最上方。
1 | //化刻度表 |
2、利用CLLocationManager初始化定位装置,并设置代理 ,记得在info.plist中加入隐私定位权限关键字 Privacy - Location When In Use Usage Description
1 | // 注意开启手机的定位服务,隐私那里的 |
通过实现定位装置的代理方法:
-(void)locationManager:(CLLocationManager )manager didUpdateHeading:(CLHeading )newHeading 来获得地理和地磁航向数据,从而转动地理刻度表以及表上的文字标注;
方法-(BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager返回Yes是为了受到外来磁场干扰时,设备会自动进行校验。
1 | #pragma mark - CLLocationManagerDelegate |
3、通过代理方法获得经纬度以及海拔数据,然后利用经纬度进行地理反编码获得地理位置信息。
1 | // 定位成功之后的回调方法,只要位置改变,就会调用这个方法 |
示例Github:iOS 仿系统指南针
欢迎扫描下方二维码关注——iOS开发进阶之路——微信公众号:iOS2679114653
本公众号是一个iOS开发者们的分享,交流,学习平台,会不定时的发送技术干货,源码,也欢迎大家积极踊跃投稿,(择优上头条) ^_^分享自己开发攻城的过程,心得,相互学习,共同进步,成为攻城狮中的翘楚!