用户将手指放在屏幕上时立即触发事件
Fire an event as soon as user places a finger on screen
我有一个表格视图,每个单元格上都有 UIPanGestureRecognizer 以产生滑动效果。
但我的问题是用户可以同时滑动两个我想禁用的单元格。
那么如何确保如果用户将他的一根手指放在屏幕上,只要该手指保持在屏幕上,就不应该有任何其他手势。
如果用户滑动一个单元格并尝试滑动另一个单元格,我可以禁用表格视图。但如果同时滑动两个单元格则不起作用。
您是否尝试过将 UIPanGestureRecognizer
的 maximumNumberOfTouches
属性 设置为 1
?
嗯,这就是我设法解决这个问题的方法。
- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)panGestureRecognizer
{
CGPoint velocity = [panGestureRecognizer velocityInView:(CardCellView *)panGestureRecognizer.view];
if(fabs(velocity.x) > fabs(velocity.y))
{
tblSearchResults.userInteractionEnabled = NO;
if(isActionInProgress)
return FALSE;
else
isActionInProgress = TRUE;
}
return fabs(velocity.x) > fabs(velocity.y);
}
如果用户滑动任何单元格,我将 BOOL isActionInProgress 更改为 true,仅当滑动的单元格恢复到其原始状态时才将其设为 false。
我有一个表格视图,每个单元格上都有 UIPanGestureRecognizer 以产生滑动效果。 但我的问题是用户可以同时滑动两个我想禁用的单元格。
那么如何确保如果用户将他的一根手指放在屏幕上,只要该手指保持在屏幕上,就不应该有任何其他手势。
如果用户滑动一个单元格并尝试滑动另一个单元格,我可以禁用表格视图。但如果同时滑动两个单元格则不起作用。
您是否尝试过将 UIPanGestureRecognizer
的 maximumNumberOfTouches
属性 设置为 1
?
嗯,这就是我设法解决这个问题的方法。
- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)panGestureRecognizer
{
CGPoint velocity = [panGestureRecognizer velocityInView:(CardCellView *)panGestureRecognizer.view];
if(fabs(velocity.x) > fabs(velocity.y))
{
tblSearchResults.userInteractionEnabled = NO;
if(isActionInProgress)
return FALSE;
else
isActionInProgress = TRUE;
}
return fabs(velocity.x) > fabs(velocity.y);
}
如果用户滑动任何单元格,我将 BOOL isActionInProgress 更改为 true,仅当滑动的单元格恢复到其原始状态时才将其设为 false。