IOS 检测摇晃 几个问题

 IOS3.0以后可以用如下

-(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{  

}

-(void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event{

}

-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{

}

这三个方法检测手机摇晃事件。

我说两个要注意的地方

1.要实现摇晃的view或者viewController一定要添加

-(BOOL)canBecomeFirstResponder{

    return YES;

}

注意不是-(BOOL)becomeFirstResponder;这个方法。

 

2.在这个view的viewController中添加[view becomeFirstResponder]; 或者在viewController添加

[self becomeFirstResponder];

注意了以上这段代码必须添加在

-(void)viewDidAppear:(BOOL)animated{

    [super viewDidAppear:animated];

    [self becomeFirstResponder];

}

这里

(添加在其他地方就无效了)

本人一开始添加在如下里

-(void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

}

添加这里看似差不多,其实差远了完全接收不到摇晃事件。

就这么多大家注意一下吧。

你可能感兴趣的:(ios,检测摇晃)