摇一摇

对于摇一摇功能 iOS 中已经提供了接口.直接调用就好了.
实现步骤:
1). 监听摇一摇方法

// 摇一摇开始
- (void)motionBegan:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event NS_AVAILABLE_IOS(3_0);
// 摇一摇结束
- (void)motionEnded:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event NS_AVAILABLE_IOS(3_0);
// 摇一摇取消
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event NS_AVAILABLE_IOS(3_0);

2). 实现下面的方法用于解决摇一摇失效的情况.(ps: 使用 Xcode6.x 后创建的项目,仅仅实现第一步监听就可以实现,没有遇到这种问题).

- (BOOL)canBecomeFirstResponder {
    return YES;
}

附:

如果多个控制器都需要摇一摇功能的话.例如我们的项目要求在登录后,每个界面都可以进行摇一摇.先看一下控制器层级关系.也算是比较常规的

摇一摇_第1张图片
层级关系1

摇一摇_第2张图片
层级关系2

由于监听摇一摇的是控制器本身 当推出控制器后,功能会受到影响.可以考虑到继承.将方法写到父控制器中. 此功能同样适用于父子控制器.由于各个navi 都是使用 addChildViewController:如果子控制器没有实现方法,会实现父控制器的方法.

你可能感兴趣的:(摇一摇)