zoukankan      html  css  js  c++  java
  • iOS指南针

    前言:

    这个小项目使用到了CoreLocation框架里面的设备朝向功能,对CoreLocation感兴趣的可以翻一下之前的文章

    在另一个博客站有朋友发现一个尴尬的问题(图片的东西2个方向是不对的),原谅我的大意,赶时间就直接百度了张图片,大家注意下就好了哈!sorry~

    指南针实现

    • 先来看看效果

    指南针效果图.gif

    • 项目主要部分就是接收到设备朝向后计算出旋转的角度,然后旋转一下我们指南针图片就可以了
    // 接收到设备朝向
    - (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
    {
        // 判断朝向是否有效
        if (newHeading.headingAccuracy < 0) {
            return;
        }
        
        // 获取设备朝向
        CLLocationDirection angle = newHeading.magneticHeading;
        
        // 将角度转成弧度(角度 / 180.0 * M_PI)
        CGFloat hudu = angle / 180.0 * M_PI;
        
        // 因为如果没有动画的话旋转的时候回出现卡顿的现象,为了更流畅,我们给它加个动画
        [UIView animateWithDuration:0.1 animations:^{
            // 旋转图片
            self.comPassImage.transform = CGAffineTransformMakeRotation(-hudu);
        }];
        
    }
    
    
    
    • 是不是很简单,但是有一点需要注意 —— 调用磁力传感器前我们需要先判断一下设备的磁力计是否可以用,以防止磁力计坏掉而没有运行成功
    	// 判断当前设备磁力计是否正常
        if (![CLLocationManager headingAvailable]) {
            return;
        }
    
    
    • 考虑到网络速度问题,我将完整的项目放到了国内版的github(码云)上了 —— 网络地址
  • 相关阅读:
    蓝桥题库基础练习1-10
    HTML5(八)Web Workers
    对自动化测试工具的实战运用
    对自动化测试工具的简要认识
    HTML5(七)Web 存储
    蓝桥杯javaB组入坑
    Google Play内购测试
    【python】python中的json、字典dict
    【python】python之tuple元组
    性能测试基础知识
  • 原文地址:https://www.cnblogs.com/miaomiaoshen/p/5538189.html
Copyright © 2011-2022 走看看