为 UICollectionView 覆盖 UIPanGestureRecognizer
Overriding UIPanGestureRecognizer for UICollectionView
在覆盖它的 superclass 时遇到一些问题 - 不断收到错误 "method does not override any method from its superclass"。集合视图和平移都已设置,我只想禁用横向平移(如果这是一个词)。
我把这个贴在 class 的底部:
override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer {
let translation = panGestureRecognizer.translationInView(collectionView!)
if fabs(translation.y) > fabs(translation.x) {
return true
}
return false
}
return false
}
有什么想法吗?我将 post 我的 jazzy collectionview 和它的平移能力作为对那些做出贡献的人的奖励。
您不能覆盖该方法,因为它不是您的 superclass (UICollectionView) 的一部分。您需要在 class 中采用 UIGestureRecognizerDelegate
协议并删除 override
.
假设您已经创建了一个 UIPanGestureRecognizer
,无论是在故事板中还是以编程方式,您都需要在加载视图时将 UIPanGestureRecognizer
的委托设置为 self
。
此外,不要忘记将 panRecognizer 添加到您的集合视图中。
panGesture.delegate = self
collectionView.addGestureRecognizer(panGesture)
在覆盖它的 superclass 时遇到一些问题 - 不断收到错误 "method does not override any method from its superclass"。集合视图和平移都已设置,我只想禁用横向平移(如果这是一个词)。
我把这个贴在 class 的底部:
override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer {
let translation = panGestureRecognizer.translationInView(collectionView!)
if fabs(translation.y) > fabs(translation.x) {
return true
}
return false
}
return false
}
有什么想法吗?我将 post 我的 jazzy collectionview 和它的平移能力作为对那些做出贡献的人的奖励。
您不能覆盖该方法,因为它不是您的 superclass (UICollectionView) 的一部分。您需要在 class 中采用 UIGestureRecognizerDelegate
协议并删除 override
.
假设您已经创建了一个 UIPanGestureRecognizer
,无论是在故事板中还是以编程方式,您都需要在加载视图时将 UIPanGestureRecognizer
的委托设置为 self
。
此外,不要忘记将 panRecognizer 添加到您的集合视图中。
panGesture.delegate = self
collectionView.addGestureRecognizer(panGesture)