像Whats app那样在长按手势上打开弹出窗口

时间:2016-04-02 04:05:57

标签: ios objective-c popup uilongpressgesturerecogni

我想用长按手势打开弹出窗口。 我的应用程序有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];

2 个答案:

答案 0 :(得分:2)

如果您想在长按开始后立即执行某些操作,则必须检查状态是否为UIGestureRecognizerStateBegan,然后编写要在长按手势开始时执行的代码。尝试下面的代码行。

 -(void) handleLongPress:(UILongPressGestureRecognizer *)sender
{
  if (sender.state == UIGestureRecognizerStateBegan)
  {
  //Write code for open pop up.
  }
}

答案 1 :(得分: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.
  }
}