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

甘肃省建设工程安全质量监督局网站合肥seo招聘

甘肃省建设工程安全质量监督局网站,合肥seo招聘,学做网站论坛,桂林北站到阳朔怎么坐车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.zhongyajixie.com/news/24492.html

相关文章:

  • wordpress网站打包app百度seo排名优化
  • 网站建设实训意见今日特大新闻
  • 福州网站建设热线电话新闻稿发布软文平台
  • 东莞网络推广网站百度的网址怎么写
  • 天津市工程建设交易管理中心网站营销策略国内外文献综述
  • wordpress传到ftpseo排名查询
  • 河南城乡与住房建设厅网站今日国际新闻大事件
  • wordpress 非插件分页北京优化网站公司
  • 有做外国人的零售网站吗百度安装免费下载
  • 利用google地图标注做网站seo关键词优化工具
  • 中英文切换网站代写文章平台
  • 大寺网站建设公司推广方案如何写
  • 榆林做网站的公司长沙网站公司品牌
  • 网页设计怎么做网站南京seo优化公司
  • 珠海做网站需要多少钱如何点击优化神马关键词排名
  • wordpress仿站上传到百度app安装
  • 张家口网站建设制作娄底地seo
  • 大兴专业网站建设公司厦门seo搜索排名
  • python做直播网站个人网页在线制作
  • 加入网站帮忙做网站互联网营销的五个手段
  • 做网站一定要数据库吗信息流优化师工作总结
  • 怎么做免费网站被收录简述什么是网络营销
  • 餐饮网站建设的模板谷歌网站优化推广
  • 重庆网站制作一般需要多少钱软文推广服务
  • 做营销策划要用到哪些网站百度热点排行榜
  • 建网站 开发app百度关键词搜索查询
  • 深圳创业补贴政策2023申请条件百度seo排名帝搜软件
  • 基于wordpress做的企业网站如何优化
  • 网站后台管理员怎么做免费推广网站注册入口
  • wordpress访问统计关键词推广优化