开发中相机拍照需求难免不会有,大部分是直接调用系统的相机拍照方法。
程序中调用系统相机拍照可能会遇到必须长按才能拍照,点击不能拍照的问题。
追踪一下,原来是项目中添加了防止button连续点击的扩展类,导致需长按才能拍照的bug。
解决方法:在扩展类中的添加判断,如果是拍摄按钮点击事件则不执行连续点击判断。
- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent*)event {
// 如果是点击相机拍照按钮事件则不判断是否连续点击
if ([method isEqualToString:@"_handleShutterButtonPressed:"]) {
NSLog(@"--------> _handleShutterButtonPressed");
[self sendAction:action to:target forEvent:event];
}
NSTimeInterval time = self.mjk_acceptEventInterval;
if (time <= 0.0) {
time = DEFAULT_ACCEPT_EVENT_INTERVAL;
self.mjk_acceptEventInterval = time;
}
if ([NSDate date].timeIntervalSince1970 - self.mjk_acceptEventTime < time) {
return;
}
// 第一次点击的时间
self.mjk_acceptEventTime = [NSDate date].timeIntervalSince1970;
[self mjk_sendAction:action to:target forEvent:event];
}
网友评论