xcode9的夜神模拟器摇一摇怎么用摇一摇

摇一摇,陀螺仪,距离传感器,计步器都是在系统的CoreMotion/CoreMotion.h框架中的,
距离传感器只有真机运行的时候猜可以获取信息
距离传感器设置默认是关闭的,需要手动打开,然后监听通知,
[UIDevice currentDevice].proximityMonitoringEnabled = YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(proximityStateDidChange) name:UIDeviceProximityStateDidChangeNotification object:nil];
可以根据设备的proximityState属性判断是否有物体接近或离开,如果没有物体接近就永远返回 NO(有物体接近的时候才返回yes ,其他的都是NO),
#pragma mark - 有物体靠近或者离开的时候,就会发送通知
- (void)proximityStateDidChange{
if ([UIDevice currentDevice].proximityState) {
NSLog(@"有物品靠近");
NSLog(@"有物品离开");
2、加速计(真机)(摇一摇)
加速计可以有2种方法,一个是调用系统的房,一个是实现代理,
首先设置管理者对象:
@property (nonatomic, strong) CMMotionManager *
#pragma mark - 懒加载
- (CMMotionManager *)mgr{
if (_mgr == nil) {
_mgr = [[CMMotionManager alloc] init];
(1)代理方式:遵守代理,设置代理,
&UIAccelerometerDelegate&
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.delegate = self;
accelerometer.updateInterval = 1 / 30.0;
实现代理方法,
#pragma mark - 获取到加速计信息的时候回调用此方法
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
NSLog(@"x=%f,y=%f,z=%f",acceleration.x,acceleration.y,acceleration.z);
(2)block方法回调,
#pragma mark - 获取加速计信息
- (void)pushAccelerometer{
if (!self.mgr.isAccelerometerAvailable) {
self.mgr.accelerometerUpdateInterval = 1 / 30.0;
[self.mgr startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData * _Nullable accelerometerData, NSError * _Nullable error) {
if (error) {
CMAcceleration acceleration = accelerometerData.acceleration;
NSLog(@"x=%f,y=%f,z=%f",acceleration.x,acceleration.y,acceleration.z);
#pragma mark - 获取陀螺仪信息
- (void)pushGyro{
if (!self.mgr.isGyroAvailable) {
self.mgr.gyroUpdateInterval = 1 / 30.0;
[self.mgr startGyroUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMGyroData * _Nullable gyroData, NSError * _Nullable error) {
CMRotationRate rotationRate = gyroData.rotationRate;
NSLog(@"x=%f,y=%f,z=%f",rotationRate.x,rotationRate.y,rotationRate.z);
4、 计步器,需要真机运行
if (![CMStepCounter isStepCountingAvailable]) {
CMStepCounter *stepCounter = [[CMStepCounter alloc] init];
[stepCounter startStepCountingUpdatesToQueue:[NSOperationQueue mainQueue] updateOn:5 withHandler:^(NSInteger numberOfSteps, NSDate * _Nonnull timestamp, NSError * _Nullable error) {
if (error) {
NSLog(@"%ld",numberOfSteps);
5、摇一摇代理
#pragma mark - 摇一摇代理方法(开始摇)
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{
#pragma mark - 摇一摇代理方法(取消摇)
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event{
#pragma mark - 摇一摇代理方法(结束摇)
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{
6、以上就是简单的介绍一下他们的使用,具体的使用可能很复杂,需要在头文件找方法,自己测试一下。
本文已收录于以下专栏:
相关文章推荐
一.功能参数简介
bosch Sensortec公司推出的最新BMI160惯性测量单元将最顶尖的16位3轴超低重力加速度计和超低功耗3轴陀螺仪集成于单一封装.MI160采用14管脚LGA封装,尺寸为...
Unity 根据手机陀螺仪做UI动态旋转移动的功能。像手游崩坏3里面流动的UI界面一样。
玩过手游崩坏3的应该会发现游戏里面的UI 界面还有一些场景 会根据 玩家手机的平衡状态对UI或者相机进行位移...
前几天项目中用到了一下CoreMotion框架,觉得iOS中的传感器还是挺好玩的,又花了点时间去了解了一下iOS中其他一些常用的传感器应用,今天简单做下总结。
iOS中的传感器大致有以下几种:
为什么总是期望用户点击触摸屏上的按钮?通过使用中端Android手机上可用的一些硬件传感器,您可以创建提供更加吸引人的用户体验的应用程序。
传感器框架是Android SDK的一部分,它允许您以简...
摘自Android SensorEvent.java代码注释
陀螺仪就是内部有一个陀螺,它的轴由于陀螺效应始终与初始方向平行,这样就可以通过与初始方向的偏差计算出实际方向。手机里陀螺仪实际上是一个结构非常精密的芯片,内部包含超微小的陀螺。
加速计是用来检测手机受...
如何把从陀螺仪获取的X,Y,Z轴的角速度信息转换成Roll(左右倾斜)、Pitch(前后倾斜)、Yaw(左右摇摆)全方位信息?
 陀螺仪就是内部有一个陀螺,它的轴由于陀螺效应始终与初...
昨天听领导说,国内没有海洋测绘用的姿态传感器,不是很相信,用百度搜索了一下,找到一家“北京星网测通科技有限公司” /about.html。其中有1个设备G2...
最近在搞一个和加速度计相关的项目,所以接触到的传感器比较多,现在写一个总结吧,放置后来者和我一样走这么多的弯路。
  首先看到的是引脚图,如果驱动不了应该首先排除硬件的问题:
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)当前位置:
& React Native - 调试技巧及调试菜单说明(模拟器调试、真机调试)
React Native - 调试技巧及调试菜单说明(模拟器调试、真机调试)
发布:hangge
阅读:2894
一、模拟器调试
我们在模拟器上按快捷键 command + D,即可弹出如下调试菜单。下面分别介绍菜单中的各个调试功能。
刷新页面,其快捷键是 command + R。
注意:只有修改 JavaScript 文件时,刷新功能才起作用。如果新增了文件或者修改了 Native 代码,就需要使用 Xcode 重新编译应用了。
2,Debug JS Remotely
(1)该功能允许开发人员在 Chrome 中调试应用,其调试方式和调试 Web 应用一样。
(2)当改功能被点击时,React Native 会启动 Chrome 浏览器,并且打开一个 http://localhost:8081/debugger-ui 的新标签。
(3)在这个标签页中,我们打开开发者工具,选择 Console,就可以看到输出的日志信息了。
(4)在 Sources Tab 页中还可以显示当前调试项目的所有 js 文件。并在上面进行断点调试。
3,Enable Live Reload
该功能主要用来实现自动刷新。当我们将实时加载启用后,如果应用中的 JavaScript 代码有任何修改,它都会自动帮我们更新,不需要人为去操作刷新功能。
4,Start Systrace
该功能主要用来监控应用在一段时间内的指标信息。
(1)我们点击“Start Systrace”开始监控。
(2)然后在操作后选择“Stop Systrace”结束监控。这时会弹出一个提示框,告诉我们数据已经生成。打开生成的 JSON 文件,就可以看到应用在这段时间内的详细指标信息了。
(3)如果我们装了 google 的 trace-viewer 插件,包服务器会帮我们自动调用 trace2html 命令打开这个 JSON 文件。
5,Enable Hot Reloading
启用热加载,同样是实现页面的自动刷新。
热加载的思想是运行时动态注入修改后的文件内容,同时不中断 APP 的正常运行。这样,我们就不会丢失 APP 的任何状态信息,尤其是 UI 页面栈相关的。
热加载(Hot Reloading)与上面提到的实时加载(Live Reload)最关键的区别:
(1)实时加载应用更新时需要刷新当前页面,可以看到明显的全局刷新效果。
(2)而热加载基本上看不出刷新的效果,类似于局部刷新。
6,Show Inspector
(1)我们可以很方便的查看到当前选中元素的位置、样式、层级关系、盒子模型信息等等。方便我们快速定位问题。
(2)同时还提供了监控应用性能的功能。
7,Show Perf Monitor
该功能启用后会显示一个监控窗口,显示出实时的内存占用、UI 和 JavaScript 的 FPS 等信息。帮助我们调试性能问题。
二、真机调试
(1)将手机连接电脑。并在 Xcode 中,选择你的手机作为目标设备。
(2)选择好项目使用的开发者账号。
(3)同时相关的 Tests target 里同样也要选择使用的开发者账号。
如果这里没设置的话会出现如下错误,无法启动程序。
Signing for "HelloWorldTests" requires a development team. Select a development team in the project editor.
Code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 10.0'
(3)确保手机和 Mac 电脑在同一个网络环境下。然后编译运行程序。
React Native iOS 在新版中 BundleURL 加载方法做了重大改变,新增了 RCTBundleURLProvider 单例类专门处理 BundleURL,使用 NSUserDefaults 保存配置信息。
在 Debug 模式下,执行 react-native-xcode.sh 编译脚本会自动获取当前网卡 en0 的 IP 地址,并打入 App 包中一个配置文件 ip.txt,App 运行时会读取 ip 文件,自动生成 Developer Server URL。
这种加载方式的好处是:我们不再需要手动去把"localhost"改成 Mac 的 IP 了,每次编译都会读取当前最新的 IP。
(4)应用启动后,只需要摇一摇手机可以调出调试菜单,里面具体功能同模拟器一样,这里就不再说明了。
(5)由于 React 的特性,手机运行应用后,就可以断开数据线了。后面电脑上只要修改了 js 文件,手机上就能自动加载或实时热更新。Pages: 1/3
主题 : 模拟器如何模拟晃动
级别: 骑士
可可豆: 2026 CB
威望: 2036 点
在线时间: 148(时)
发自: Web Page
模拟器如何模拟晃动&&&
如题模拟器如何模拟晃动呢?
级别: 风云使者
可可豆: 74253 CB
威望: 74253 点
在线时间: 2874(时)
发自: Web Page
control + command + z
(使用Google Apps,在墙外)
级别: 骑士
可可豆: 2026 CB
威望: 2036 点
在线时间: 148(时)
发自: Web Page
回 1楼(superarts) 的帖子
有没有既加速又晃动的,那个是设备的-&摇动手势,但是没有加速度,有一个html需要晃动并且得有速度才行把~
级别: 精灵王
可可豆: 37810 CB
威望: 38806 点
在线时间: 2088(时)
发自: Web Page
抱着电脑,左右晃动,或者上下晃动,再不行抱着电脑来回转圈。楼主可以试试
/能吃能喝能睡
级别: 精灵王
UID: 80990
可可豆: 5919 CB
威望: 6704 点
在线时间: 712(时)
发自: Web Page
引用 引用第3楼lw223于 17:04发表的&&:抱着电脑,左右晃动,或者上下晃动,再不行抱着电脑来回转圈。楼主可以试试&&++
级别: 实习版主
UID: 79027
发帖: 8703
可可豆: 41280 CB
威望: 41194 点
在线时间: 1501(时)
发自: Web Page
引用 引用第3楼lw223于 17:04发表的&&:抱着电脑,左右晃动,或者上下晃动,再不行抱着电脑来回转圈。楼主可以试试&&+1
水果公司现在已经落入基佬的手中了,乔帮主你怎么看?
级别: 圣骑士
可可豆: 3055 CB
威望: 3055 点
在线时间: 406(时)
发自: Web Page
引用 引用第3楼lw223于 17:04发表的&&:抱着电脑,左右晃动,或者上下晃动,再不行抱着电脑来回转圈。楼主可以试试&&经测试,证实为不可信的,LZ别被忽悠了,不需要转圈,只要左右摇一摇就行了,不过对机体与水平面的夹角有比较苛刻的要求,具体是哪个范围值还需要继续测试
级别: 精灵王
UID: 35043
发帖: 1566
可可豆: 10290 CB
威望: 10290 点
在线时间: 3548(时)
发自: Web Page
引用 引用第3楼lw223于 17:04发表的&&:抱着电脑,左右晃动,或者上下晃动,再不行抱着电脑来回转圈。楼主可以试试&&+1
级别: 骑士
可可豆: 2026 CB
威望: 2036 点
在线时间: 148(时)
发自: Web Page
回 6楼(jarodpp) 的帖子
好邪恶~~~~~~~瞎起哄~~~~~~~~~~~
级别: 骑士
可可豆: 2026 CB
威望: 2036 点
在线时间: 148(时)
发自: Web Page
回 3楼(lw223) 的帖子
哥们~这是技术讨论~不知道就别乱发言
Pages: 1/3
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
囧,半天也查不到,请问大神们苹果自带的运用自身感应器而监听摇一摇的方法是什么啊,谢谢
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
//微信的摇一摇是怎么实现的~发现原来 ios本身就支持
//在 UIResponder中存在这么一套方法
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
//这就是执行摇一摇的方法。那么怎么用这些方法呢?
//很简单,你只需要让这个Controller本身支持摇动
//同时让他成为第一相应者:
- (void)viewDidLoad
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[UIApplicationsharedApplication] setApplicationSupportsShakeToEdit:YES];
[selfbecomeFirstResponder];
//然后去实现那几个方法就可以了
- (void) motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
//检测到摇动
- (void) motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
//摇动取消
- (void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
//摇动结束
if (event.subtype == UIEventSubtypeMotionShake) {
//something happens
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:

我要回帖

更多关于 逍遥安卓模拟器摇一摇 的文章

 

随机推荐