如何在 UIPangestureRecognizer 上禁用多点触控?
How to disable multi touch on UIPangestureRecognizer?
我有一个 UICollectionView
,我添加了 UILongPressGestureRecognizer
和 UIPangestureRecognizer
用于长按和重新排序单元格。而且我还为所有 UICollectionViewCells
添加了 UIPanGestureRecognizer
以在右侧显示删除和几个选项。
我的问题是当我用两根手指平移两个 UICollectionViewCells
时,两个 UICollectionViewCells
都在检测平移并显示选项。
我一次只希望 UICollectionViewCell
之一检测它的 UIPangestureRecognizer
。有什么解决办法吗?
任何人都可以帮我解决这个问题吗?。
提前致谢。
您可以在 collection 上自行禁用多点触控。通过制作简单的 属性。
[UICollectionView setMultipleTouchEnabled:NO];
如果由于手势视图的实施问题仍未解决,那么您可以使用TouchedFlag
保持对单元格的触摸。
您可以在
中设置
- (IBAction) panGesture:(UIPanGestureRecognizer *)gesture;
您可以将 TouchedFlag
设置为 1 而
if (gesture.state == UIGestureRecognizerStateBegan)
{
TouchedFlag=1;
}
并在 PanGesture
结束于
时后退
if (gesture.state == UIGestureRecognizerStateEnded)
{
TouchedFlag=0;
}
所以你的结局代码应该看起来像
- (IBAction) panGesture:(UIPanGestureRecognizer *)gesture
{
if (gesture.state == UIGestureRecognizerStateBegan && TouchedFlag==0)
{
TouchedFlag=1;
//Do your PAN openration
}
else if (gesture.state == UIGestureRecognizerStateBegan && TouchedFlag==1) {
//just prompt msg to user then single view at a time allowd to PAN
}
else if (gesture.state == UIGestureRecognizerStateEnded) {
TouchedFlag=0;
}
}
你试过UIPangestureRecognizer的minimumNumberOfTouches / maximumNumberOfTouches属性吗?
我有一个 UICollectionView
,我添加了 UILongPressGestureRecognizer
和 UIPangestureRecognizer
用于长按和重新排序单元格。而且我还为所有 UICollectionViewCells
添加了 UIPanGestureRecognizer
以在右侧显示删除和几个选项。
我的问题是当我用两根手指平移两个 UICollectionViewCells
时,两个 UICollectionViewCells
都在检测平移并显示选项。
我一次只希望 UICollectionViewCell
之一检测它的 UIPangestureRecognizer
。有什么解决办法吗?
任何人都可以帮我解决这个问题吗?。 提前致谢。
您可以在 collection 上自行禁用多点触控。通过制作简单的 属性。
[UICollectionView setMultipleTouchEnabled:NO];
如果由于手势视图的实施问题仍未解决,那么您可以使用TouchedFlag
保持对单元格的触摸。
您可以在
中设置- (IBAction) panGesture:(UIPanGestureRecognizer *)gesture;
您可以将 TouchedFlag
设置为 1 而
if (gesture.state == UIGestureRecognizerStateBegan)
{
TouchedFlag=1;
}
并在 PanGesture
结束于
if (gesture.state == UIGestureRecognizerStateEnded)
{
TouchedFlag=0;
}
所以你的结局代码应该看起来像
- (IBAction) panGesture:(UIPanGestureRecognizer *)gesture
{
if (gesture.state == UIGestureRecognizerStateBegan && TouchedFlag==0)
{
TouchedFlag=1;
//Do your PAN openration
}
else if (gesture.state == UIGestureRecognizerStateBegan && TouchedFlag==1) {
//just prompt msg to user then single view at a time allowd to PAN
}
else if (gesture.state == UIGestureRecognizerStateEnded) {
TouchedFlag=0;
}
}
你试过UIPangestureRecognizer的minimumNumberOfTouches / maximumNumberOfTouches属性吗?