加速度计 didAccelerate 委托方法未在 iOS sdk 6.0 中调用
Posted
技术标签:
【中文标题】加速度计 didAccelerate 委托方法未在 iOS sdk 6.0 中调用【英文标题】:Accelerometer didAccelerate delegate method not getting called in iOS sdk 6.0 【发布时间】:2013-02-20 07:36:37 【问题描述】:我正在开发应用程序来获取用户如何用力摇晃 ios 设备的阈值。我正在使用 iOS sdk 6.0。
我尝试了 UIResponder 委托方法 motionEnded:: 当设备被摇动时它会被调用,但没有提供足够的数据来证明某个人摇动设备的力度。 我进行了足够多的搜索,找到了使用 UIAccelerometer didAccelerate 回调方法的单一解决方案。但它没有被调用。是sdk的问题吗?由于此方法在 iOS 5 中已弃用。
我也尝试过 coreMotion 框架,但它提供了陀螺仪数据,显示设备旋转了多少,而不是摇了多少。 这样做的最佳方法是什么。 我关注了How do I detect when someone shakes an iPhone?,但没有找到有用的答案。
【问题讨论】:
只是为了确保,您是否已将我刚刚想通了。即使您执行摇晃手势或旋转模拟器,iOS 模拟器也不响应 UIAccelerometer 操作。不起作用。但如果你在设备上运行,你会发现同样的代码运行良好:)
【讨论】:
感谢您的回复,因为即使我是 iOS 开发人员。我没有 iPhone 或任何 Apple 产品!所以这教育了我! :) (Y)【参考方案2】:试试这个,在你看来加载只是这样做:
UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
accel.delegate = self;
这使它对我有用。根本不需要使用该变量,但它与将共享加速度计委托设置为 self 有关
【讨论】:
以上是关于加速度计 didAccelerate 委托方法未在 iOS sdk 6.0 中调用的主要内容,如果未能解决你的问题,请参考以下文章