iOS 6 UIGestures(Swipe)停止使用QLPreviewController

Ben*_*ing 8 uigesturerecognizer ios qlpreviewcontroller ios6

在iOS 6 beta 4和iOS 5.1.1中,我有左/右滑动,允许用户在UIViewController中托管的不同QLPreviewControllers之间滑动.

在iOS 6的发布版本中,滑动现在完全被忽略.

尝试将UIView作为预览控制器的子视图,试图让预览控制器的视图在预览控制器有机会吞下它们之前拦截滑动,但这些从未被触发.

任何人看到这个或知道一个解决方案.

谢谢,

gho*_*ron 2

我遇到了同样的问题,但 UITapGestureRecognizer 无法在 QLPreviewController 上工作。在 iOS 6 中,这个东西就像 UIGestureRecognizer 对象的黑洞......没有任何东西可以从那里逃出来!

不过我确实找到了解决方法。我正在对 QLPreviewController 进行子类化,因此在我的子类中,我滥用了(相对)新的 viewWillLayoutSubviews 方法并添加了以下代码片段:

UIView *overlay = [[UIView alloc] initWithFrame:self.view.frame];
overlay.backgroundColor = [UIColor whiteColor];
overlay.alpha = .002f;
for (UIView *v in self.view.subviews)
{
    [v addSubview:overlay];
}
[overlay release];
Run Code Online (Sandbox Code Playgroud)

这可能有点矫枉过正,但我​​基本上进入了所有快速查看子视图,并向它们添加了一个可以接受手势的视图。我选择了 0.002 alpha,因为降低它会导致手势再次被忽略。