• ios 指南针


    指南针图片  IBOutlet UIImageView *compassView

    1
    #import "ViewController.h" 2 #import <CoreLocation/CoreLocation.h> 3 4 #define isIOS(version) ([[UIDevice currentDevice].systemVersion floatValue] >= version) 5 /** 6 先决条件:真机测试,模拟器上没有磁力计 传感器 7 8 **/ 9 @interface ViewController ()<CLLocationManagerDelegate> 10 11 /** 位置管理者*/ 12 @property (nonatomic, strong) CLLocationManager *locM; 13 /**指南针图片**/ 14 @property (weak, nonatomic) IBOutlet UIImageView *compassView; 15 16 @end 17 18 @implementation ViewController 19 20 #pragma mark - 懒加载 21 /** locM属性的懒加载 */ 22 -(CLLocationManager *)locM 23 { 24 if (!_locM) { 25 // 1. 创建位置管理者 26 _locM = [[CLLocationManager alloc] init]; 27 // 1.1 block , 代理, 通知 28 _locM.delegate = self; 29 30 } 31 return _locM; 32 } 33 34 35 -(void)viewDidLoad 36 { 37 38 // 获取设备方向 39 // ("磁力计", 判断设备是否支持传感器) 40 41 if([CLLocationManager headingAvailable]) 42 { 43 [self.locM startUpdatingHeading]; 44 }else 45 { 46 NSLog(@"dang前不支持"); 47 } 48 49 50 51 } 52 53 54 55 #pragma mark - CLLocationManagerDelegate 56 57 /** 58 * 方向发生改变时调用 59 * 60 * @param manager 位置管理者 61 * @param newHeading 方向信息 62 */ 63 -(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 64 { 65 NSLog(@"%@", newHeading); 66 67 /** 68 * CLHeading 69 magneticHeading : 磁北角度 70 trueHeading : 真北角度 71 */ 72 73 if(newHeading.headingAccuracy < 0) 74 { 75 return; 76 } 77 78 // 获取磁北方向(角度) 79 CGFloat angle = newHeading.magneticHeading; 80 81 // 角度--> 弧度 82 CGFloat hudu = angle / 180.0 * M_PI; 83 84 85 [UIView animateWithDuration:1 animations:^{ 86 // 反向旋转图片(弧度) 87 self.compassView.transform = CGAffineTransformMakeRotation(-hudu); 88 }]; 89 90 91 92 93 } 94 95 96 97 @end
  • 相关阅读:
    作业十三
    作业十二
    第十一次作业
    编译原理第十次作业
    P3388 【模板】割点(割顶) 题解 (Tarjan)
    BuaacodingT141 microhhh的回城 题解(模拟)
    P2055 [ZJOI2009]假期的宿舍 题解(二分图)
    P2764 最小路径覆盖问题 题解(二分图)
    2019.2-2019.3 TO-DO LIST
    P3369 【模板】普通平衡树 题解(Splay/FHQ)
  • 原文地址:https://www.cnblogs.com/developer-ios/p/4810702.html
Copyright © 2020-2023  润新知