2016-04-02 16 views
1

長押しのポップアップを開きたい。 私のアプリケーションがUITableViewを持っていて、ユーザーがUITableviewCellを長押ししてポップアップを開いたとき。 ユーザーが指を長く押し続けると、ポップアップが表示されます。ユーザーが指を長押しして離したときではありません。Whats appのような長押しのポップアップ

私は以下のコードを使用しています: 指を離したときにこのコードを使用すると、アフターポップが開き、間違っています。私は指を離さずに長押しでポップアップを開きたい。

//Long press gesture 
UILongPressGestureRecognizer *longPressGesture= [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPress:)]; 
longPressGesture.minimumPressDuration = .4; //seconds 
longPressGesture.delegate = self; 
longPressGesture.delaysTouchesBegan = YES; 
cell.titleLabel.userInteractionEnabled = YES; 
[cell.titleLabel addGestureRecognizer:longPressGesture]; 
+0

があなたのために、このコードの仕事をしていますか? – user3182143

答えて

1

あなたはこのような何かを行うことができます。

-(void) handleLongPress:(UILongPressGestureRecognizer *)sender 
{ 
    if (sender.state == UIGestureRecognizerStateBegan) 
    { 
    //Start a timer and perform action after whatever time interval you want. 
    } 
    if (sender.state == UIGestureRecognizerStateEnded) 
    { 
    //Check the duration and if it is less than what you wanted, invalidate the timer. 
    } 
} 
+0

ありがとう、それgr8作品です。 –

+0

@Moni_BQ - 素晴らしい! –

2

あなたはできるだけ早く長押しが始まると何らかのアクションを取りたいなら、あなたは状態がUIGestureRecognizerStateBeganであるかどうかをチェックして、あなたは長押しジェスチャが始まるときに実行するコードを記述する必要があります。以下のコード行を試してみてください。

-(void) handleLongPress:(UILongPressGestureRecognizer *)sender 
{ 
    if (sender.state == UIGestureRecognizerStateBegan) 
    { 
    //Write code for open pop up. 
    } 
} 
関連する問題