我一直在四处寻找疯子。我需要在音量按钮长按和短按(如Snapchat,短按拍照,长按录制视频)上进行自定义操作,但失败了。
我用https://github.com/jpsim/JPSVolumeButtonHandler 这让我可以检测音量按钮按下事件。但经过非常努力的尝试后,我没有发现它的长按时间以及短暂的按压时间。
也请参考Detect iPhone Volume Button Hold? (iOS 8)
我的代码
//Volume button handler
self.volumeButtonHandler = [JPSVolumeButtonHandler volumeButtonHandlerWithUpBlock:^{
// Volume Up Button Pressed
[self onVolumeUp];
} downBlock:^{
// Volume Down Button Pressed
}];
-(void)onVolumeUp {
if(self.volButtonTimer) {
secondsElapsed = 1; //To detect long press
[self.volButtonTimer invalidate];
}
self.volButtonTimer = [NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(onTimerFire)
userInfo:nil
repeats:NO];
}
-(void)onTimerFire {
NSLog(@"Long Press %d",secondsElapsed);
if (secondsElapsed > 1)
{
//Do Something
}
else secondsElapsed = 0;
}
我需要帮助。搜索遍布谷歌但失败了。如果Snapchat正在这样做,意味着它可行。
谢谢
答案 0 :(得分:0)
我现在面临同样的问题。我能够发现的是,如果Apple改变了一些基本的硬件功能,它将拒绝你的应用程序。请看这个链接:https://developer.apple.com/app-store/review/guidelines/。另一方面,它有误导性,因为App Store上有许多相机应用程序,如Snapchat,它们明显使用音量按钮/长按用于其他目的。
无论如何,我设法处理长按,看到这个帖子:https://github.com/jpsim/JPSVolumeButtonHandler/issues/27#issuecomment-253979943