0

У меня есть PageControl, и каждая страница (ViewController) имеет различное количество imageviews (UIImageView), которые создаются динамически.Отключить распознаватель жестов для UIImageView в приложении iPad

Каждой imageview присваивается gesture recognizer (tapped or move). Поскольку они находятся внутри PageControl, я хотел бы включить/отключить gesture recognizer, чтобы он не мешал swipe событиям страницы.

Я знаю, что существует метод removeGestureRecognizer, но я не хочу удалять и прикреплять его каждый раз. Существует ли эквивалент только для включения и отключения?

Благодаря

ответ

3

Вы можете использовать включить или отключить свойства UIGestureRecognizer как :

swipeGestureRecognizer.enabled = NO; 

или вы можете использовать метод жеста распознаватель возвращение нуля, если вы не хотите прикосновений

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
     shouldReceiveTouch:(UITouch *)touch; 
+0

спасибо. Оба ответа верны, но поскольку я создаю их динамически (нет через интерфейс), я принимаю этот ответ. Но хорошо знать ответ UI на это тоже для справок в будущем. –

1

Вы можете отключить userInteractionEnabled для этого UIImageView? Вы можете сделать это в Interface Builder, если вы делаете это таким образом, или вы могли бы установить это программно, как так - imageView.userInteractionEnabled = NO; Надеюсь, что это помогает ...

enter image description here

+0

Великого. спасибо за объяснение и картинку. Это отличная рекомендация знать, хотя я делаю все это динамически в коде. –

+0

прохладный. Его сложно построить все в GUI для DEV. В любом случае вы можете отключить 'userInteraction' из кода напрямую. 'imageView.userInteractionEnabled = NO;' это помогает? –

2

Если вы хотите, чтобы отключить все жесты в то же время, вы можете сделать, как

imageView.userIntractionEnabled = NO; 

если вы хотите отключить только один жест распознаватель, то

NSArray *gestures = imageView.gestureRecognizers; 
for(UIGestureRecognizer *gesture in gestures) 
{ 
    if([gesture isKindOfClass: [UITapGestureRecognizer class]]) 
    { 
     gesture.enabled = NO; 
    } 
+0

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

+0

извините .. моя ошибка :) – Rafeek

+0

не беспокойтесь, спасибо! –

Смежные вопросы