如何检测上UICollectionView触摸?(How to detect touch on UI

2019-10-19 15:08发布

我想禁用UICollectionViewController的自转只要有屏幕上的手指,像iPhone照片应用程序一样。

怎么做?

  • 如果使用自来水的手势,如何区分不同的触摸状态? (该状态应该是touching ,即使在手指移动)。
  • 如果使用touchBegan:withEvent: ,在这里把这些代码? (命中视图可以是UICollectionView的任何子视图。)

Answer 1:

我会设置一个标志touchesBegan和清除touchesEnded 。 然后在您的shouldAutoRotate方法可以检查标志,如果设置了标志返回false。

事情是这样的:

// In your UICollectionView subclass:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // Do stuff
    ...
    canRotate = NO;
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    // Do stuff
    ...
    canRotate = YES;
}

// In your UICollectionViewController:

-(bool)shouldAutorotate
{
    return(canRotate);
}


文章来源: How to detect touch on UICollectionView?