ios - 为 UICollectionView 覆盖 UIPanGestureRecognizer

标签 ios swift uicollectionview uicollectionviewcell uipangesturerecognizer

在使其覆盖其父类(super class)时遇到一些问题 - 不断收到错误“方法不会覆盖其父类(super class)中的任何方法”。 Collection View 和平移均已设置,我只想禁用横向平移(如果这是一个词)。

我把这个放在类(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
}

有什么想法吗?我将发布我的 jazzy collectionview 和它的平移能力作为对那些做出贡献的人的奖励。

最佳答案

您不能覆盖该方法,因为它不是您的父类(super class) (UICollectionView) 的一部分。您需要在您的类中采用 UIGestureRecognizerDelegate 协议(protocol)并删除 override

假设您已经在 Storyboard中或以编程方式创建了一个 UIPanGestureRecognizer,您需要将该 UIPanGestureRecognizer 的委托(delegate)设置为 self您的 View 加载。

此外,不要忘记将 panRecognizer 添加到您的 Collection View 中。

panGesture.delegate = self
collectionView.addGestureRecognizer(panGesture)

关于ios - 为 UICollectionView 覆盖 UIPanGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36233056/

相关文章:

ios - 嵌套的 CollectionView 不会在滑动时隐藏导航栏

ios - 无法在 iOS 中打开/创建 SQLite 数据库

ios - SwiftUI 中自定义 UIViewRepresentable UITextView 的框架高度问题

arrays - 我如何使 Firebase 中的 .observe 在调用重新加载 Collection View 之前检索其所有数据

swift - 如果文本字段中的字符串为空,如何不添加单元格?

swift - 获取 Apple Watch 上的 RSSI

ios - 有没有更短的方法来使用 indexPath.row?

ios - UILocalizedIndexCollat​​ion 上的 `sectionForSectionIndexTitleAtIndex` 如何工作? (特别是带有自定义部分标题)它总是返回相同的数字

ios - UICollectionView 滚动后无法选择

ios - 使用自定义 FlowLayout (Swift) 时将 HeaderView 添加到 CollectionView