我有UICollectionView
并决定重写gestureRecognizerShouldBegin
函数,以便能够控制集合滚动中涉及的触摸次数。
因此,我希望我的UICollectionView
仅用一根手指滚动。
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
switch gestureRecognizer == self.panGestureRecognizer {
case true:
return gestureRecognizer.numberOfTouches == 1
default:
return super.gestureRecognizerShouldBegin(gestureRecognizer)
}
}
它可以在我的iOS 10.3.1设备上按预期工作。但它不适用于iOS 10.0.1,iOS 9.3.5。
最佳答案
问题在于,UICollectionView
触发时,UIPanGestureRecognizer
的gestureRecognizerShouldBegin
可能返回零触摸。因此,如果有人想要控制UICollectionView
滚动滚动的次数,我应该意识到问题所在,或者选择其他方法。
正确运行的方式(几乎):
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
switch gestureRecognizer == self.panGestureRecognizer {
case true:
return gestureRecognizer.numberOfTouches <= 1
default:
return super.gestureRecognizerShouldBegin(gestureRecognizer)
}
}