2016-09-07 7 views
0

Я работаю над приложением, в котором я хочу как короткий длинный жест в том же представлении, я добавил, но проблема в том, что я сталкиваюсь с тем, что короткий конец жестов всегда вызывает, помогите, как это сделать правильно. Ниже мой код.Добавление обоих коротких длинных жестов в одном и том же представлении с надлежащей дифференциацией

 UILongPressGestureRecognizer *longGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longGestureOnFormFields:)]; 
    longGesture.minimumPressDuration = 1.0f; 
    [longGesture setDelegate:self]; 
    [self addGestureRecognizer:longGesture]; 

    UILongPressGestureRecognizer *shortGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(shortGesture:)]; 
    shortGesture.minimumPressDuration = 0.1f; 
    [shortGesture setDelegate:self]; 
    [self addGestureRecognizer:shortGesture]; 

- (void)longGestureOnFormFields:(UIGestureRecognizer*) recogniser 
{ 
    if (recogniser.state == UIGestureRecognizerStateEnded) { 
} 
- (void)shortGesture:(UIGestureRecognizer*) recogniser 
    { 
     if (recogniser.state == UIGestureRecognizerStateEnded) { 
} 
+0

'[shortGesture requireGestureRecognizerToFail: longGesture];' Добавить это – zylenv

ответ

0

Вы можете управлять, что с помощью одного UITapGestureRecognizer как,

self.view.userInteractionEnabled = YES; 

UILongPressGestureRecognizer *longGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longGestureOnFormFields:)]; 
longGesture.minimumPressDuration = 1.0f; 
[longGesture setDelegate:self]; 
[self.view addGestureRecognizer:longGesture]; 


UITapGestureRecognizer *recog = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(testm)]; 
[self.view addGestureRecognizer:recog]; 

и ваши методы smething как,

-(void)testm{ 


NSLog(@"tap"); 

} 

-(void)longGestureOnFormFields : (UILongPressGestureRecognizer*)sender{ 

    if (sender.state == UIGestureRecognizerStateEnded) { 

     NSLog(@"long press gesture"); 
    } 

} 

Я добавил жест распознавателя в viewDidload т.е. в ViewController так что я добавьте его в self.view, если у вас есть подкласс UIVIew и добавьте его в это представление, затем добавьте его на self, например [self addgesture...] как указано в вопросе!

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

  • Нет связанных вопросов^_^