当前位置: 首页 > news >正文

巴彦淖尔网站建设公司国家城乡与住房建设部网站

巴彦淖尔网站建设公司,国家城乡与住房建设部网站,高安高端网站设计公司,工商联网站建设作用iOS开发-CMMotionManager传感器陀螺仪 之前开发中遇到需要使用陀螺仪判断是否拍照时候水平判断,如果没有水平拍照,则给出提示。方便用户拍照合适的题目图片。 一、CMMotionManager CMMotionManager是什么 CMMotionManager 是 Core Motion 库的核心类&…

iOS开发-CMMotionManager传感器陀螺仪

之前开发中遇到需要使用陀螺仪判断是否拍照时候水平判断,如果没有水平拍照,则给出提示。方便用户拍照合适的题目图片。

一、CMMotionManager

CMMotionManager是什么
CMMotionManager 是 Core Motion 库的核心类,负责获取和处理手机的运动信息,它可以获取的数据有

  • 陀螺仪,标识设备在三个主轴上的瞬时旋转
  • 加速度,标识设备在三维空间中的瞬时加速度
  • 磁场信息,标识设备相对于地球磁场的方位

设备运动数据,标识关键的运动相关属性,包括设备用户引起的加速度、姿态、旋转速率、相对于校准磁场的方位以及相对于重力的方位等,这些数据均来自于 Core Motion 的传感器融合算法,从这一个数据接口即可获取以上三种数据,因此使用较为广泛

二、CMMotionManager陀螺仪代码

陀螺仪判断是否拍照时候水平判断
代码如下

#import <Foundation/Foundation.h>
#import <CoreMotion/CoreMotion.h>@interface SDSensorManager : NSObject@property (nonatomic, copy) void (^updateDeviceMotionBlock)(CMDeviceMotion *data);+ (instancetype)shareInstance;- (void)startGyroscope;- (void)stopGyroscope;@end
#import "SDSensorManager.h"static SDSensorManager *shareInstance = nil;@interface SDSensorManager ()@property (nonatomic, strong) CMMotionManager *motionManager;@end@implementation SDSensorManager+ (instancetype)shareInstance {static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{shareInstance = [[SDSensorManager alloc] init];shareInstance.motionManager = [[CMMotionManager alloc]init];});return shareInstance;
}- (void)startGyroscope {if (_motionManager.deviceMotionAvailable) {_motionManager.deviceMotionUpdateInterval = 1/30;__weak typeof(self)mySelf = self;[_motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue]withHandler:^(CMDeviceMotion *data, NSError *error) {if (mySelf.updateDeviceMotionBlock) {mySelf.updateDeviceMotionBlock(data);}}];}
}- (void)stopGyroscope {[_motionManager stopDeviceMotionUpdates];self.updateDeviceMotionBlock = nil;
}@end

开启判断陀螺仪,根据设备的水平旋转判断是否给出相应的提示。

/**启动陀螺仪*/
- (void)startSenorManager {__weak typeof(self) weakSelf = self;[SDSensorManager shareInstance].updateDeviceMotionBlock = ^(CMDeviceMotion *data){DebugLog(@"gravity.x == %f", data.gravity.x);DebugLog(@"gravity.y == %f", data.gravity.y);CGFloat gravityX = data.gravity.x;CGFloat gravityY = data.gravity.y;BOOL hXShow = NO;BOOL hYShow = NO;if (gravityX > 0.20 || gravityX < -0.20) {// 水平倾斜了hXShow = YES;}if (gravityY > 0.20 || gravityY < -0.20) {// 竖直倾斜了hYShow = YES;}BOOL showCampass = NO;if (hXShow || hYShow) {// 水平倾斜了,可显示CampassImageViewif (weakSelf.showExampleImage || weakSelf.showFrontImageView.image) {// 已经显示了example图片了,则不显示showCampass = NO;} else {showCampass = YES;}}weakSelf.compassImageView.hidden = !showCampass;};[[SDSensorManager shareInstance] startGyroscope];
}

关闭陀螺仪,在不需要使用的时候,关闭陀螺仪。

/**关闭陀螺仪*/
- (void)stopSenorManager {[[SDSensorManager shareInstance] stopGyroscope];
}

三、小结

iOS开发-CMMotionManager传感器陀螺仪,使用CMMotionManager判断陀螺仪、加速度、磁场信息等数据。

学习记录,每天不停进步。

http://www.hyszgw.com/news/66646.html

相关文章:

  • 什么星网站做调查问卷的电销crm管理系统
  • 如何查网站外链一个完整的品牌策划方案范文
  • 做网站用什么框架最方便做网站时候如果添加微信代码
  • 怎么做网站板块建平台跟建网站
  • 怎么学网站设计利用wordpress的page
  • 温州网站建设维护网站设计的出路
  • 企业网站创建步百度推广的网站怎么做
  • 网站备案 注销找公司做网站需要买服务器
  • 青岛建站公司流程柳城 wordpress
  • 做寂网站网站托管维护代运营
  • 做刀模线网站创意的广告公司名字
  • 上海浦东网站建设wordpress博客自媒体资讯主题
  • 淄博企业网站排名优化wordpress迁移无法登录
  • 接口网站建设制作一个网站费用
  • 沈阳建站模板小程序注册方法
  • 南京城乡建设局网站百度手机seo软件
  • ppt做的比较好的网站绛县网站建设
  • 网站建设的功能需求分析策划书东莞黄页大全
  • 成都市做网站公司本溪网站设计公司
  • 环境设计专业必看网站wordpress字体旋转
  • 南宁市建设处网站网店营销策划方案
  • 怎么制作网站平台电话wordpress淘宝联盟模板
  • 信息类网站有哪些做网站的公司名字
  • 常用的网站都有哪些网站怎么建立支付平台
  • 江苏省工程建设标准网站网站建设及制作教程
  • asp.net实用网站开发doc安康手机网站建设
  • 学网站开发难吗外贸网站建设价格怎么样
  • 做网站需要注意的点wordpress 创建网站
  • 网站可以跳转备案吗网站制作价格低
  • 怎么做才能发布网站企业邮箱多少钱