0

나는 UICollectionView을 가지고 있으며 컬렉션 스크롤과 관련된 접촉 횟수를 제어 할 수 있도록 gestureRecognizerShouldBegin 함수를 재정의하기로 결정했습니다.gestureRecognizerShouldBegin이 numberOfTouches가 0 일 때

그래서 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

문제는 UICollectionViewUIPanGestureRecognizergestureRecognizerShouldBegin 화재 제로 접촉을 반환 할 수 있다는 것입니다. 따라서 누군가 제가 위에서 설명한대로 UICollectionView 스크롤을 허용하는 터치 횟수를 제어하려는 경우 문제를 인식하거나 다른 방법을 선택해야합니다.

제대로 (거의) 작동 방법 :

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