1

長押しジェスチャーでポップアップを開きたい。私のアプリケーションにはUITableViewがあり、ユーザーがUITableviewCellを長押しするとポップアップが開きます。ユーザーが指を十分長く保持すると、ポップアップのみが表示されます。ユーザーが指を長押しして離したときではありません。

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

//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];
4

2 に答える 2

2

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

 -(void) handleLongPress:(UILongPressGestureRecognizer *)sender
{
  if (sender.state == UIGestureRecognizerStateBegan)
  {
  //Write code for open pop up.
  }
}
于 2016-04-02T04:46:26.080 に答える
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.
  }
}
于 2016-04-02T05:02:45.330 に答える