2013-12-23 4 views
0

Я создал один вид внутри своего приложения, так что я создал десять представлений, как сетку, и я добавил UITapGestureRecogniser на десять просмотров, если пользователь нажал один из представления в сетке я вызову метод, в котором на основе его значения тега я создам новый экземпляр представления определенного класса. Но я получаю проблему, если пользователь нажимает на два вида за раз или в разнице доли секунд, то этот метод вызывается два раза. Это создает проблему внутри моего приложения. Мне нужно решение для этого. Я не получаю никакого решения, что делать. Может кто-нибудь знает этот дескриптор, пожалуйста, помогите мне как можно скорее.Как рассматривать только один жест, если я нажимаю на два вида одновременно

Благодаря & С уважением Swathi

+0

вы можете быть немного более конкретно о том, что вы делаете в этом методе? – santhu

+0

Когда этот метод вызывается, внутри этого метода отключить события окна или приложения, чтобы он не получал события, пока вы не включите его. – santhu

ответ

0

Я просто создать логическое значение, то будет установлено значение NO в каждом методе, называемом этими видами.

В конце метода, установите его на YES

-(void)view1tapped{ 
     BOOL shouldRecognizeTap = enabled; 
     self.enabled = NO; 
     if (shouldRecognizeTap){ 
       // do your stuff here 
     } 
     self.enabled = YES; 
} 

-(void)view2tapped{ 
     BOOL shouldRecognizeTap = enabled; 
     self.enabled = NO; 
     if (shouldRecognizeTap){ 
       // do your stuff here 
     } 
     self.enabled = YES; 
} 

Кроме того, в методе делегата gestureRecognizer, я надеюсь, что вы проверка состояния распознавателя как этот

-(void) handleTapGesture:(UIGestureRecognizer *) sender { 
    if (sender.state != UIGestureRecognizerStateEnded) // <--- 
     return; 

    sender.enabled = NO // (or disable all the other gesture recognizers). 
    // do your stuff here 
    sender.enabled = YES; 
}