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 является объектом зрения QLPreviewController «s По которому UILongPressGestureRecognizer есть!

qlPreviewController является view не viewcontroller убедитесь, что!

Обновление:

, например;

QLPreviewController *vc; 

    UIView *qlPreviewController = vc.view; 

Update 2:

вы можете использовать этот delegate method отключить жест распознаватель!

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

    return NO; 


} 
+0

Позвольте мне попробовать .. И я уверен, что это не контроллер представления –

+0

Можно сказать, у меня, что делать и имею в виду qlPreviewController является объектом зрения QLPreviewController в? –

+0

, что означает основной вид 'QLPreviewController', потому что мы добавляем распознаватель жестов на' view', а не на viewcontroller !! понял? – Lion