0

我有UICollectionView,並決定覆蓋gestureRecognizerShouldBegin函數,以便能夠控制收集滾動涉及的觸摸次數。當gestureRecognizerShouldBegin觸發numberOfTouches爲零

所以我想我的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

的問題是,UICollectionViewUIPanGestureRecognizer可能返回觸摸時gestureRecognizerShouldBegin火災。所以,如果有人想要控制滾動我上面描述的方式所允許的觸摸次數,他應該意識到這個問題......或者選擇其他方法。

它工作正常(幾乎)方式:

override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { 
    switch gestureRecognizer == self.panGestureRecognizer { 
    case true: 
     return gestureRecognizer.numberOfTouches <= 1 
    default: 
     return super.gestureRecognizerShouldBegin(gestureRecognizer) 
    } 
}