0

UIViewドキュメントをプレビューしながら、メイン ビューとして a を追加し、その上にサブビューとして a を追加します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]];
     }
}
4

1 に答える 1

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]];
    }
}

qlPreviewControllerQLPreviewControllerはそこにあるのビューのオブジェクトUILongPressGestureRecognizerです!

qlPreviewControllerそれを確認していviewませんviewcontroller

アップデート :

例えば;

  QLPreviewController *vc;  

  UIView *qlPreviewController = vc.view;

更新 2:

これを使用してdelegate method、ジェスチャー認識を無効にすることができます!

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

    return NO;


 }
于 2016-09-08T10:05:58.193 に答える