摇一摇功能:调用了系统自带加速器,当设备摇动时,系统会 计算出加速器的加速值,然后告诉设备是否发生摇动手势,系统只会运动开始和结束时通知你,并不会在运动发生的整个过程中始终向你报告每一次运动。例如,你快速摇动设备三次,那只会收到一个摇动事件。
想要实现摇动手势,首先需要使视图控制器成为第一响应者,注意不是单独的控件。成为第一响应者最恰当的时机是在视图出现的时候,而在视图消失的时候释放第一响应者。
1 -(BOOL)canBecomeFirstResponder 2 { 3 return YES; 4 } 5 6 -(void)viewDidAppear:(BOOL)animated 7 { 8 [super viewDidAppear:animated]; 9 [self becomeFirstResponder]; 10 } 11 12 -(void)viewDidDisappear:(BOOL)animated 13 { 14 [super viewDidDisappear:animated]; 15 [self resignFirstResponder]; 16 }
然后实现motionEnded方法,因为是手机移动结束的时候会调用 这个方法
1 -(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event 2 { 3 if (motion == UIEventSubtypeMotionShake) { 4 NSLog(@"I am shaker"); 5 } 6 }
时间: 2024-10-13 02:27:35