指南针
2015-12-31 14:05
260 查看
@interface ViewController ()
// 定位管理者
@property (nonatomic ,strong) CLLocationManager *mgr;
// 指南针图片
@property (nonatomic, strong) UIImageView *compasspointer;
@end
(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;
}
// 定位管理者
@property (nonatomic ,strong) CLLocationManager *mgr;
// 指南针图片
@property (nonatomic, strong) UIImageView *compasspointer;
@end
(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;
}
相关文章推荐
- CentOS下安装nginx并且升级nginx到最新版
- cocos2dx内嵌gamecenter时的解决方案
- iOS开发之AppIcon&LaunchImage
- Web前端开发实战2:二级下拉式菜单之JS实现
- java3.类的继承
- Extjs5新特性
- android 工具类 DateUtil
- jQuery.Validate验证库
- SQL Compute By 的使用 和 与Group By 的区别
- MySQL Fabric实验(二)Sharding
- sql小case
- C/C++ 多种方式进行大小写字母转换
- 如何在高版本的ubuntu系统里安装gcc4.1.2
- JMS 规范简介
- [Android基础学习]ImageView 图片不拉伸
- onNewIntent调用时机
- ios单例
- 嘉佣坊
- 【转】Oracle dblink详解
- HTML --- <a href=”#”>与 <a href=”javascript:void(0)” 的区别