ios 指南针
2015-09-15 16:42
369 查看
指南针图片 IBOutlet UIImageView *compassView |
1 #import "ViewController.h" #import <CoreLocation/CoreLocation.h> #define isIOS(version) ([[UIDevice currentDevice].systemVersion floatValue] >= version) /** 先决条件:真机测试,模拟器上没有磁力计 传感器 **/ @interface ViewController ()<CLLocationManagerDelegate> /** 位置管理者*/ @property (nonatomic, strong) CLLocationManager *locM; /**指南针图片**/ @property (weak, nonatomic) IBOutlet UIImageView *compassView; @end @implementation ViewController #pragma mark - 懒加载 /** locM属性的懒加载 */ -(CLLocationManager *)locM { if (!_locM) { // 1. 创建位置管理者 _locM = [[CLLocationManager alloc] init]; // 1.1 block , 代理, 通知 _locM.delegate = self; } return _locM; } -(void)viewDidLoad { // 获取设备方向 // ("磁力计", 判断设备是否支持传感器) if([CLLocationManager headingAvailable]) { [self.locM startUpdatingHeading]; }else { NSLog(@"dang前不支持"); } } #pragma mark - CLLocationManagerDelegate /** * 方向发生改变时调用 * * @param manager 位置管理者 * @param newHeading 方向信息 */ -(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading { NSLog(@"%@", newHeading); /** * CLHeading magneticHeading : 磁北角度 trueHeading : 真北角度 */ if(newHeading.headingAccuracy < 0) { return; } // 获取磁北方向(角度) CGFloat angle = newHeading.magneticHeading; // 角度--> 弧度 CGFloat hudu = angle / 180.0 * M_PI; [UIView animateWithDuration:1 animations:^{ // 反向旋转图片(弧度) self.compassView.transform = CGAffineTransformMakeRotation(-hudu); }]; } @end
相关文章推荐
- ios 开发 icon图标设置
- iOS开发之 分段选择控件 开关 滑杆
- iOS 调取本地相册/相机,剪裁图片进行头像上传
- iOS获取plist文件属性值的方法
- iOS开发之 手势
- iOS 不要使用tag传递TableViewCell的indexPath值
- ios 定位 航向检测
- SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件
- SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件
- iOS 定位精度
- ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收
- iOS学习资源搜集
- IOS开发+(void)load与+(void)initialize区别
- Crashlytics——iOS crash log 解析利器
- ios 线程安全单例写法
- 【投稿】iOS蓝牙开发(一)蓝牙相关基础知识
- iOS runtime方法详解之添加类
- IOS贝塞尔曲线圆形进度条和加载动画
- ios 关于scrollview内空间位置与想象不符的解决办法
- iOS设置分割线从边框顶端开始