swift 加速传感器

iOS swift实现传感器 简单实现一些传感器import UIKit import CoreMotion import CoreLocation class ViewController: UIViewController,CLLocationManagerDelegate { @IBOutlet weak var compassView: UIView! var cmm : CMMotionM 阅读详情

加速传感器以前用的UIAccelerometer实现,但是Xcode6后完全放弃了,使用CoreMotion代替它能监听到x,y,z三个方向的加速度,听起来比较炫,实际上使用方法很简单,具体使用步骤如下:

1、实例化CMMotionManager类

2、向CMMotionManager的accelerometerUpdateInterval属性中设置通知间隔时间值。

3、使用NSOperationQueue.currentQueue()建立一个监听队列

4、使用startAccelerometerUpdatesToQueue 方法更新监听队列,并设置回调函数用于接受加速度通知,通知时间间隔已经在第二步设置过。在回调函数中使用accelerometerData.acceleration 相关属性可以获得x,y,z各方向的加速度。

import UIKit
import CoreMotion
class ViewController: UIViewController{
   
    var ball:UIImageView!
      //    设备x轴的加速值
    var spendX:UIAccelerationValue = 0
    //     设备x轴的加速值
    var spendY:UIAccelerationValue = 0
    var motionManager = CMMotionManager()
    
    
    
      override func viewDidLoad() {
        super.viewDidLoad()
         ball = UIImageView.init(image: UIImage(named:"1"))
         ball.frame = CGRect.init(x: 0, y: 0, width: 50, height: 50)
        ball.center = self.view.center
        self.view.addSubview(ball)
        // 告诉motionManager更新的频率
        motionManager.accelerometerUpdateInterval = 1/60
        //判断加速器是否可用
        if motionManager.isAccelerometerAvailable {
            
            let queue = OperationQueue.current
        // 开始更新,后台线程运行
          motionManager.startAccelerometerUpdates(to: queue!, withHandler: {
            (CMAccelerometerData,NSError) in
                //动态设置小球位置
                self.spendX += (CMAccelerometerData?.acceleration.x)!
                self.spendY += (CMAccelerometerData?.acceleration.y)!
                var posX = (self.ball.center.x) + CGFloat((self.spendX))
                var posY = (self.ball.center.y) - CGFloat((self.spendY))
                //碰到边框后的反弹处理
                if posX < 0{
                    posX = 0
                    //碰到左边的边框后以0.4倍的速度反弹
                    self.spendX *= -0.4
                } else if posX > (self.view.frame.size.width) {
                    posX = (self.view.frame.size.width)
                    //碰到右边的边框有以0.4倍的速度反弹
                    self.spendX *= -0.4
                }
                if posY < 0{
                    posY = 0
                    //碰到上面的边框不反弹
                    self.spendY = 0
                } else if posY > (self.view.bounds.size.height){
                    posY = (self.view.frame.size.height)
                    //碰到下面的边框以1.5倍的速度反弹
                    self.spendY *= -1.5
                }
                self.ball.center = CGPoint.init(x: posX, y: posY)
 
             })
 
            

            
        }
    }
   
   
    
    
}



【菜鸟初学Swift】IOS平台常用传感器的使用方式 一、加速度的使用: import UIKit import CoreMotion //传感器的使用,引入 CoreMotion class ViewController: UIViewController { var cmm:CMMotionManager! //获取类:CMMotionManager override func viewDidLoad() { 阅读详情

相关推荐

掌握Core Motion:Swift中运动传感器的魔法

Core Motion是Apple提供的一个框架,用于访问设备的加速计、陀螺仪和磁力计等传感器。通过这个框架,开发者能够获取设备的姿态、速度和方向等信息,实现计步器、导航和游戏控制等功能。

2401_85702623的博客 1548

iOS传感器之加速计

为什么80%的码农都做不了架构师?>>> ...

weixin_33979745的博客 191

Swift - CoreMotion

1.加速传感器可以监听到x,y,z三个方向的加速度,步骤如下: (1)实例化CMMotionManager类 (2)向CMMotionManager的accelerometerUpdateInterval属性中设置通知间隔时间值 (3)使用PerationQueeu.current建立一个监听队列 (4)使用startAccelerometerUpfates方法更新监听队列,并设置回调函数用于接受...

iOS - Swift 504

iOS CoreMotion获取传感器数据

attitude:通俗来讲,就是告诉你手机在当前空间的位置和姿势。gravity:重力信息,其本质是重力加速度矢量在当前设备的参考坐标系中的表达。userAcceleration:加速度信息。rotationRate:计时的旋转速率,是陀螺仪的输出。//翻滚//偏航//俯仰//重力加速度在各个方向的分量.gravity.x;.gravity.y;.gravity.z;print("重力X:%f -- Y:%f -- Z:%f", gX, gY, gZ);//检测到晃动。

培根芝士的专栏 2289

懒人精灵手游内存技术分析

教学声明:全套教程教学用到的游戏采用手游私服网游进行测试,不针对任何游戏。教学只做计算机技术研究,不做其他用途。

yizhihaoren123的博客 1656

抄表程序员的DLMS/COSEM协议实战:从抓包到解析,手把手教你读懂IEC62056报文

本文深入解析DLMS/COSEM协议在智能电表通信中的应用,从报文捕获到数据解析的全流程实战指南。涵盖HDLC帧解析、应用层连接建立、数据请求/响应解码等核心内容,并提供Wireshark配置、OBIS代码速查表等实用工具,帮助开发者快速掌握IEC62056标准下的电能表通信技术。

weixin_29178069的博客 299

Swift - 加速传感器(CoreMotion)的用法,小球加速运动并反弹样例

1,加速传感器可以监听到x,y,z三个方向的加速度,使用步骤如下: (1)实例化CMMotionManager类 (2)向CMMotionManager的accelerometerUpdateInterval属性中设置通知间隔时间值。 (3)使用NSOperationQueue.currentQueue()建立一个监听队列。 (4)使用startAccelerometerUpdatesTo...

weixin_34277853的博客 294

svn co --depth和svn up --set-depth 只check out下一层文件 只更新指定文件 只更新下一层的用法

svn的工程可能很大 有时我们只需要部分文件即可 这里介绍几个命令 1.svn co(check out) --depth --depth=empty,files,immediates,infinity 假设某svn结构如下 svn://root/PRO/A_dir/a svn://root/PRO/B_dir/b svn://root/PRO/c_file svn co --depth=emptysvn://root/PRO 此时只会在本地check out出 PRO/的空目录。 sv.

cy413026的博客 1万+

iOS开发-CoreMotion核心动作开发-陀螺仪CMRotationRate-加速计CMAcceleration-磁强计Magnetometer开发CoreMotion核心动作实践

CoreMotion 核心动作 简介:CoreMotion是iOS系统目前用于处理加速度计,陀螺仪,计步器和环境相关事件。 Core Motion的报告来自iOS设备的板载硬件的运动和环境相关数据,包括加速度计和陀螺仪,以及计步器,磁力计和气压计。您可以使用此框架访问硬件生成的数据,以便在应用程序中使用它。例如,游戏可能使用加速度计和陀螺仪数据来控制屏幕上的游戏行为。 提示: 在iOS 10.0...

伪随机的张三 3945

单细胞测序流程(五)t-sne聚类分析和寻找marker基因

系列文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分分析——PCA 本期主讲内容——t-sne聚类分析和寻找marker基因 介绍:T-SNE是一种用于探索高维数据的非线性降维算法。它将多维数据映射到适合于人类观察的两个或多个维度。 一、课前准备 之前所使用的数据 R语言的IDE 二、过程 聚类分析的目的是根据细胞的差别所进行细胞分群,两个..

qq_45478665的博客 2万+

医药领域知识图谱快速及医药问答项目(项目全过程)

该项目是中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目 Github项目地址:mirrors / liuhuanyong / qasystemonmedicalkg · GitCode 一、项目环境搭建 该部分要十分注意,由于版本升级的问题,一些用法及格式已经不兼容了。 python3.8 下载地址:Python Release Python 3.8.10 | Python.orght...

qq_52062182的博客 9915

ios 加速传感器UIAccelerometer

加速计(UIAccelerometer)是一个单例模式的类,所以需要通过方法sharedAccelerometer获取其唯一的实例。 加速计需要设置的主要有两个: 一个是设置其代理,用以执行获取加速计信息的方法;  另一个是设置加速计获取信息的频率。 最高支持每秒100次。 UIAccelerometer *accelerometer = [UIAccelerometersharedA

The Life with iOS 2261

【以太网硬件九】1000base-X是什么?

简要描述1000base-X物理层规范

highman110的博客 1万+

Swift之加速度传感器编程

采用CoreMotion.framework加速度框架 代码方面主要分两块,要有一个加速度的核心类,负责获取到加速度,一个视图控制类,视图控制类可自由选择,在需要的时候调用加速度核心类。 一:加速度核心类: 首先需要创建一个加速度核心类MotionClass,导入CoreMotion 核心类的创建思路是: 1.需要创建一个单例,获取到加速度CMMotionManager实例。 2.类中

SilentDLO的专栏 1940

【Python机器学习】决策树与随机森林:解释性与鲁棒性的平衡

本文深入探讨了决策树和随机森林在解释性与鲁棒性之间的权衡。决策树以其完美的可解释性、快速的推理速度和无需特征标准化等优势,在许多场景中仍然是首选算法。一个经过合理剪枝的决策树,其每个决策路径都可以转化为业务规则,这在金融风控、医疗诊断等对透明度有严格要求的领域无可替代。然而,单棵决策树的高方差和容易过拟合的特性限制了其泛化能力。随机森林通过集成学习的思想,巧妙地解决了这个矛盾。它维持了相对较好的解释性(通过特征重要性、OOB估计等方式),同时通过多棵树的投票或平均,大幅降低了模型的方差。

nmdbbzcl的博客 626

2025华为od机试真题B卷【停车场费用统计】Python实现

2025华为od机试真题B卷【停车场费用统计】Python实现

MISAYAONE的博客 535

加速传感器(CoreMotion) swift

// // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fangyuhao. All rights reserved. // import UIKit import CoreMotion class ViewController: UIViewCon...

weixin_30363981的博客 172

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

iOS加速度传感器

简单的代码内容: 输出结果:

henanzhg的博客 832

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

iOS中加速度传感器的使用

在如今的非常多智能手机中。内置了非常多的传感器,我们开发的非常多App都能够依据传感器的信息开发出交互性更加强的应用。如今我们先来iOS中使用并获取加速度传感器。 (1)代码实现例如以下: import UIKit import CoreMotion class ViewController: UIViewController { var cmm...

weixin_30371875的博客 571

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

27.iPhone加速度传感器简单介绍

iPhone加速度传感器简单介绍

Cain For iOS的专栏 3289

加速度 陀逻计的设备方向的使用

加速度计是一种能够感应设备一个方向上线性加速度的传感器 ios设备中有三种方向,为xyz轴, 为三轴的受力情况 先导入coremotion framework框架  在build phases 的link binary with libraries中 获取到coremotion framework 框架 随后导入 试这样的 随后在viewcontroller.swift中添加代码

不起眼的小学生 1216

IOS 传感器

import UIKit import CoreMotionclass ViewController: UIViewController { var cmm:CMMotionManager! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after

ChristmasGuus 296

iOS- 传感器用法简介

// // ViewController.swift // Sensors // // Created by 程磊 on 15/5/4. // Copyright (c) 2015年 程磊. All rights reserved. // import UIKit import CoreMotion class ViewController: UIViewController {

ClayGuitar的专栏 565
上一篇: 手势 Swift
下一篇: swift UIScrollView
Nackery
博客等级 码龄11年 7粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值