【问题标题】:Accelerometer didAccelerate delegate method not getting called in iOS sdk 6.0加速度计 didAccelerate 委托方法未在 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?,但没有找到有用的答案。

【问题讨论】:

  • 只是为了确保,您是否已将 添加到类标题中的 @interface 声明中?

标签: ios objective-c core-motion uiresponder uiaccelerometer


【解决方案1】:

我刚刚想通了。即使您执行摇晃手势或旋转模拟器,iOS 模拟器也不响应 UIAccelerometer 操作。不起作用。但如果你在设备上运行,你会发现同样的代码运行良好:)

【讨论】:

  • 感谢您的回复,因为即使我是 iOS 开发人员。我没有 iPhone 或任何 Apple 产品!所以这教育了我! :) (Y)
【解决方案2】:

试试这个,在你看来加载只是这样做:

UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
accel.delegate = self;

这使它对我有用。根本不需要使用该变量,但它与将共享加速度计委托设置为 self 有关

【讨论】:

    猜你喜欢
    • 2016-07-16
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多