0

私はUIViewをメインビューとして、サブビューとしてQLPreviewControllerをドキュメントのプレビュー中に追加します。誰もドキュメントから内容をコピーできないように、長押しのジェスチャーを制限したいと思います。QLPreviewControllerの長押しのジェスチャーを無効にする方法

コードスニペット:

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:nil]; 

longPress.allowableMovement=100; 

longPress.minimumPressDuration=0.3; 
longPress.delegate=self; 
longPress.delaysTouchesBegan=YES; 
longPress.delaysTouchesEnded=YES; 

longPress.cancelsTouchesInView=YES; 
[previewController.view addGestureRecognizer:longPress]; 
[self.view addSubview:previewController.view]; 

しかし、誰の成功、私は次のコードを試してみました。誰かが私が間違っていると、長いプレスのジェスチャーを無効にするために何ができるのか教えていただけますか?

私もこれを試してみました:

NSArray *arr = previewController.view.gestureRecognizers; 

for (int i = 0; i < arr.count; i++) { 

    if ([[arr objectAtIndex:i] isKindOfClass:[UILongPressGestureRecognizer class]]) { 

     [previewController.view removeGestureRecognizer:[arr objectAtIndex:i]]; 
    } 
} 

答えて

0

あなたは何かなどを行うことができ、

NSArray *arr = qlPreviewController.gestureRecognizers; 

for (int i = 0; i < arr.count; i++) { 

    if ([[arr objectAtIndex:i] isKindOfClass:[UILongPressGestureRecognizer class]]) { 

     [qlPreviewController removeGestureRecognizer:[arr objectAtIndex:i]]; 
    } 
} 

qlPreviewControllerウィッヒUILongPressGestureRecognizerQLPreviewControllerのビューのオブジェクトが存在しています!

qlPreviewControllerviewではないviewcontrollerを確認してください。

更新:例えば

QLPreviewController *vc; 

    UIView *qlPreviewController = vc.view; 

アップデート2:

あなたはジェスチャー認識を無効にするには、このdelegate methodを使用することができます!

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 

    return NO; 


} 
+0

uはuはqlPreviewControllerによって何を意味するかを教えてもらえます...私が試してみましょうそしてそれは、ビューコントローラ –

+0

ではないと確信していますQLPreviewControllerのビューの対象ですか? –

+0

これは 'viewControllerではなく' view'にジェスチャ認識機能を追加したので、 'QLPreviewController'のメインビューを意味します!!とった? – Lion

関連する問題