iOS「摇一摇」功能的实现

iOS 系统在 UIResponder 类中提供了一个摇一摇的实现方法,大体实现思路为: 想让哪个 VC 实现摇一摇方案,将该 VC 变为第一响应者即可;

在 UIResponder 类中提供了三个摇一摇的实现方法: 三个方法一次为: 开始摇一摇、结束摇一摇、取消摇一摇

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);

在viewDidLoad 中执行以下方法

- (void)viewDidLoad {  
[super viewDidLoad];  
// 设置允许摇一摇功能  
[UIApplication sharedApplication].applicationSupportsShakeToEdit = YES;  
// 并让自己成为第一响应者  
[self becomeFirstResponder];  
return;  
}

摇一摇相关方法:

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {  
NSLog(@"开始摇动");  
return;  
}  

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {  
NSLog(@"取消摇动");  
return;  
}  

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {  
if (event.subtype == UIEventSubtypeMotionShake) { // 判断是否是摇动结束  
    NSLog(@"摇动结束");  
}  
return;  
}  

另外:在模拟器中运行时,可以通过「Hardware」-「Shake Gesture」来测试「摇一摇」功能

注意: 一定要在运行时才能调用 「Hardware」

你可能感兴趣的:(iOS「摇一摇」功能的实现)