当 gestureRecognizerShouldBegin 触发时,numberOfTouches 为零
When gestureRecognizerShouldBegin fires the numberOfTouches is zero
我有 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
可能 return zero 在 gestureRecognizerShouldBegin
触发时接触。所以,如果有人想按照我上面描述的方式控制 UICollectionView
滚动允许的触摸次数,他应该意识到这个问题......或者选择其他方法。
它的正确工作方式(几乎):
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
switch gestureRecognizer == self.panGestureRecognizer {
case true:
return gestureRecognizer.numberOfTouches <= 1
default:
return super.gestureRecognizerShouldBegin(gestureRecognizer)
}
}
我有 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
可能 return zero 在 gestureRecognizerShouldBegin
触发时接触。所以,如果有人想按照我上面描述的方式控制 UICollectionView
滚动允许的触摸次数,他应该意识到这个问题......或者选择其他方法。
它的正确工作方式(几乎):
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
switch gestureRecognizer == self.panGestureRecognizer {
case true:
return gestureRecognizer.numberOfTouches <= 1
default:
return super.gestureRecognizerShouldBegin(gestureRecognizer)
}
}