指南针的制作

提示:获取用户的方向信息是不需要授权的

指南针的制作_第1张图片
简易指南针

先说两个方法:

  • 1.CLLocationManger 调用 startUpdatingLocation会调用下面的方法(用户的位置(定位)需要获权)

     //先获权后调用方法
     [self.locationManger requestAlwaysAuthorization];
     -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
    
  • 2.CLLocationManger 调用 startUpdatingHeading会调用下面的方法(用户方向的不需要需要获得权限)下面是简单的指南针的调用

前提:加载一张指南针图片,其他的#import 框架都需要导入,以及定位管理对象,挂代理,遵守协议,利用对象来调用 startUpdatingHeading ,下面方法调用的前提是有真机方向发生改变

//获取到用户的方向时会被调用
-(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{

NSLog(@"当用到用户的方向时会被调用");

/*
 magneticHeadng 设备与磁北的相对角度
 trueHeading 设备与磁北的相对角度,必须和定位一起使用,ios需要设置位置来计算真北始终指向地理北极点
 */
NSLog(@"%f",newHeading.magneticHeading);

//1.将获取到的角度转为弧度   转换公式: 弧度 = (角度 * 兀)/ 180

CGFloat angle = newHeading.magneticHeading * M_PI / 180;

//2.旋转图片
/*
 
    顺时针  正
    逆时针  负数
 
 */
self.compasspointer.transform = CGAffineTransformIdentity;//清空
self.compasspointer.transform = CGAffineTransformMakeRotation(-angle);

}

重点:角度转弧度的方法 : 弧度 = (角度 * 兀)/ 180

你可能感兴趣的:(指南针的制作)