猫猫学iOS 之CoreLocation指南针小应用

猫猫分享,必须精品

原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u013357243

一:效果图示

简单的用到CoreLocation获取方位做的指南针小应用
猫猫学iOS 之CoreLocation指南针小应用_第1张图片

二:制作思路

具体用到了CoreLocation相关的知识,请看上一篇博客有写
然后获取方向不需要进行授权,所以授权可以去掉
简单思路就是一张图片,然后根据CoreLocation来获取到方位同事做出哦动画效果

三:代码

代码很少,下面是全部代码,核心用到的代码就几句,这也是iOS开发的强大之处吧

#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>

@interface ViewController ()<CLLocationManagerDelegate>
/** * 定位管理者 */
@property (nonatomic ,strong) CLLocationManager *mgr;
// 指南针图片
@property (nonatomic, strong) UIImageView *compasspointer;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    // 1.添加指南针图片

    UIImageView *iv = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"bg_compasspointer"]];
    iv.center = CGPointMake(self.view.center.x, self.view.center.y);
    [self.view addSubview:iv];
    self.compasspointer = iv;

    // 2.成为CoreLocation管理者的代理监听获取到的位置
    self.mgr.delegate = self;

    // 3.开始获取用户位置
    // 注意:获取用户的方向信息是不需要用户授权的
    [self.mgr startUpdatingHeading];


}
#pragma mark - CLLocationManagerDelegate
// 当获取到用户方向时就会调用
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
// NSLog(@"%s", __func__);
    /* magneticHeading 设备与磁北的相对角度 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);




}

#pragma mark - 懒加载
- (CLLocationManager *)mgr
{
    if (!_mgr) {
        _mgr = [[CLLocationManager alloc] init];
    }
    return _mgr;
}

@end

你可能感兴趣的:(ios,图片,location,应用,指南针)