2016-10-18 34 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 *)發件人

{ 如果([sender isEqual:self.longPress]){

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

}

,因爲它僅適用於由最近的小區,我也嘗試過移動長按屬性的觀點做負載的初始化,它仍然分配給按鈕創建細胞,但我的有同樣的結果。如果任何人有任何洞察力做這樣的事情真的很感激。

回答

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]; 
    } 
} 
相關問題