我有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。
答案 0 :(得分:0)
问题是当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)
}
}