2013-07-02 5 views

ответ

0

Вам необходимо переопределить gestureRecognizerShouldBegin. Затем вы можете обнаружить translation.x и увидеть, где значения находятся между ними.

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)panGestureRecognizer { 
    CGPoint translation = [panGestureRecognizer translationInView:self.view]; 
    if (translation.x > 500 && translation.x < 600) 
     [self callCustom]; 
    return true; 
} 

- (void) callCustom { 
//do what you need to do 
} 
0

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

- (void)handlePan:(UIPanGestureRecognizer *)recognizer { 

    if (recognizer.state == UIGestureRecognizerStateChanged) { 

     CGPoint movement = [recognizer translationInView:self.view]; 

     if (movement.x >= 500 && movement.x <= 600) { 

      [self methodToCall]; 
     } 
    } 
} 
+0

Что делать, если я хочу только метод позвонить один раз? Я хочу запустить конкретный UIView. С предложением, которое вы даете, он будет продолжать вызывать метод до тех пор, пока ваша кастрюля все еще продолжается. Благодаря! – sooon

+1

Я бы использовал переменную 'BOOL', которую вы установили в' YES' при первом вызове метода, а затем установите условие if, которое вызывает только ваш метод, если ваша переменная установлена ​​на 'NO' – SeanT

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