2016-10-18 3 views
0

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

// вот что я имею в моем cellForRowAtIndexPath

self.longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPressGestures:)]; 
longPress.minimumPressDuration = 1.0f; 
longPress.allowableMovement = 300.0f; 

[cell.button addGestureRecognizer:longPress]; 

// тестирование LP

  • (пустоты) handleLongPressGestures: (UILongPressGestureRecognizer *) отправитель

{ если ([отправитель isEqual: self.longPress]) {

if(sender.state == UIGestureRecognizerStateBegan){ 
     [self performSegueWithIdentifier:@"changeValues" sender:self]; 
    } 
} 

}

, так как он работает только для самой последней ячейки сделали, я также попытался переместить инициализацию свойств longPress в целях сделал нагрузки и назначения его на кнопку на создание ячейки, но я до сих пор имел те же результаты. Если у кого-то есть представление о том, что вы делаете что-то подобное, это действительно будет оценено.

ответ

0

Этот метод работал для меня, и хотя он не использует жест распознаватель, это делать то, что я недоставало его так я хотя бы разместить его упаковывают кто-то сталкивался с той же проблемой

- (IBAction)numberAvailablePressed:(id)sender { 

    pressedDown = NO; 

} 

- (IBAction)numberAvailableTouchedDown:(id)sender { 
    pressedDown = YES; 


    [NSTimer scheduledTimerWithTimeInterval:3.0 
            target:self 
            selector:@selector(checkIfPressed) 
            userInfo:nil 
            repeats:NO]; 

} 

-(void)checkIfPressed 
{ 
    if(pressedDown == YES) 
    { 
     [self performSegueWithIdentifier:@"changeValues" sender:self]; 
    } 
}