指南针
来源:互联网 发布:linux安装在u盘上 编辑:程序博客网 时间:2024/04/28 03:52
@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;
}
0 0
- 指南针
- 指南针
- 指南针
- 指南针
- 指南针
- 指南针
- 指南针
- 指南针 司南
- android 指南针
- android指南针
- android指南针
- Android 指南针
- IOS指南针
- 学习指南针
- 简易指南针
- 指南针SurfaceView
- iOS指南针
- 小巧指南针
- matlab 与数据库操作
- 菜鸟之路-android studio集成ShareSdk的一些步骤
- Android上实现多个辅助服务
- OpenStack for Glance镜像和实例目录解析
- app连接蓝牙打印机实现打印并排版
- 指南针
- 接口设计六大原则
- Oracle 导入导出imp/exp常用语句摘记
- python+Tkinter+多线程
- jquery选择器大全
- SSH
- 第<2>章 实现复杂的数据结构
- Android 按钮点击频率控制设计
- CSS透明属性详解