长按手势打开弹出窗口,如 Whatsapp
Open popup on long press gesture like Whats app
我想在长按手势时打开弹出窗口。
我的应用程序有 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];
如果你想在长按开始时立即采取一些行动,那么你必须检查状态是否为 UIGestureRecognizerStateBegan
然后编写你想要在长按手势开始时执行的代码。尝试使用以下代码行。
-(void) handleLongPress:(UILongPressGestureRecognizer *)sender
{
if (sender.state == UIGestureRecognizerStateBegan)
{
//Write code for open pop up.
}
}
你可以这样做:
-(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.
}
}
我想在长按手势时打开弹出窗口。 我的应用程序有 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];
如果你想在长按开始时立即采取一些行动,那么你必须检查状态是否为 UIGestureRecognizerStateBegan
然后编写你想要在长按手势开始时执行的代码。尝试使用以下代码行。
-(void) handleLongPress:(UILongPressGestureRecognizer *)sender
{
if (sender.state == UIGestureRecognizerStateBegan)
{
//Write code for open pop up.
}
}
你可以这样做:
-(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.
}
}