Xcode
iPhone
首先自定义一个响应的View,然后在.m中设置自定义View的- (BOOL)canBecomeFirstResponder方法的返回值为YES,如下:
在控制器中导入自定义View的头文件,然后设置属性并在- (void)viewDidLoad方法中初始化自定义View,如下:
在控制器中视图出现与消失的两个方法(- (void)viewDidAppear:(BOOL)animated与- (void)viewDidDisappear:(BOOL)animated)中分别将自定义的View设置为第一响应者和取消第一响应者,如下:
UIResponder类下关于摇晃响应的三个方法为:开始、结束和取消,具体如下:- (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);
在监听的三个方法中UIEventSubtype枚举为响应类的方式,当UIEventSubtype的对象为UIEventSubtypeMotionShake时即为摇晃事件,具体的枚举列表如下:
在控制器中实现摇晃响应的三个方法,在方法类部判断motion是否为UIEventSubtypeMotionShake从而判断为摇晃事件,在判断条件下进行我们的其他操作即可(摇晃事件的测试必须使用真机测试),如下:
摇晃事件的测试必须使用真机测试