@IT·互联网@产品程序员

拯救单身狗,用swift写一个app测试你的手速(女生禁入)

2016-08-26  本文已影响1018人  子祖

为了鼓励大家,先上效果图


心动吧,快来学做一个然后和你们的小伙伴一下比一下手速吧!!!

代码前先介绍一下iOS传感器的作用和功能


实现思路

加速计的原理


获取加速计有两种方式 (随便选择使用)

  1. push方式:实时采集所有数据(采集频率高)
import UIKit
import CoreMotion

class ViewController: UIViewController {
 
    private func push() {
        // 1.判断加速计是否可用
        guard mgr.accelerometerAvailable else {
            return
        }
        
        // 2.设置时间间隔
        mgr.accelerometerUpdateInterval = 1.0
        
        // 3.开始采集数据
        mgr.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) { (data : CMAccelerometerData?, error : NSError?) in
            // 1.错误校验
            if error != nil {
                return
            }
            
            // 2.判断data是否有值
            guard let data = data else {
                return
            }
            
            // 3.获取加速计具体的值
            print("x:\(data.acceleration.x) y:\(data.acceleration.y) z:\(data.acceleration.z)")
        }
    }
}

  1. pull方式:在有需要的时候,再主动去采集数据
import UIKit
import CoreMotion

class ViewController: UIViewController {
    
    private lazy var mgr : CMMotionManager = CMMotionManager()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // pull方式
        // 1.判断加速计是否可用
        guard mgr.accelerometerAvailable else {
            return
        }
        
        // 2.开始采集数据
        mgr.startAccelerometerUpdates()
    }
    
    
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        guard let data = mgr.accelerometerData else  {
            return
        }
        
        print("x:\(data.acceleration.x) y:\(data.acceleration.y) z:\(data.acceleration.z)")
    }
}

最后根据分别拿到X、Y、Z值来计算你个人的手速,值大的为手速王啦!快来做一个和你的好基友比手速啦!


我是子祖,来了就点个赞再走,喜欢就关注我,我还会陆续更新更多项目让大家去练手,或者你有什么语言想了解的都可以和我聊聊!

上一篇 下一篇

猜你喜欢

热点阅读