iOS 系統(tǒng)在 UIResponder 類(lèi)中提供了一個(gè)搖一搖的實(shí)現(xiàn)方法,大體實(shí)現(xiàn)思路為: 想讓哪個(gè) VC 實(shí)現(xiàn)搖一搖方案,將該 VC 變?yōu)榈谝豁憫?yīng)者即可;
在 UIResponder 類(lèi)中提供了三個(gè)搖一搖的實(shí)現(xiàn)方法: 三個(gè)方法一次為: 開(kāi)始搖一搖壁榕、結(jié)束搖一搖、取消搖一搖
- (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 中執(zhí)行以下方法
- (void)viewDidLoad {
[super viewDidLoad];
// 設(shè)置允許搖一搖功能
[UIApplication sharedApplication].applicationSupportsShakeToEdit = YES;
// 并讓自己成為第一響應(yīng)者
[self becomeFirstResponder];
return;
}
搖一搖相關(guān)方法:
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"開(kāi)始搖動(dòng)");
return;
}
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"取消搖動(dòng)");
return;
}
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake) { // 判斷是否是搖動(dòng)結(jié)束
NSLog(@"搖動(dòng)結(jié)束");
}
return;
}
另外:在模擬器中運(yùn)行時(shí)退疫,可以通過(guò)「Hardware」-「Shake Gesture」來(lái)測(cè)試「搖一搖」功能