ios - 使用 swift 为自定义控件分配两个不同的 UITapGestureRecognizer

标签 ios swift swift4 uitapgesturerecognizer

使用 swift,我正在尝试创建一个动态的通用控件来重用它,基本上,该控件内部应该有一个通用的行为。

更具体地说,我有一个 UIScrollView 并使用 UIViews 填充它,当您点击 UIView 时,背景应该改变. 一切正常。

但是,对于实现,我的通用控件类接受一个 Selector 作为参数。

两者单独工作,但一起工作时不工作。

具体部分代码为:

通用类

let clickAgendaEvent = UITapGestureRecognizer(target: self, action:  #selector (self.agendaClicked (_:)))
cellSubView.addGestureRecognizer(clickAgendaEvent)
cell.addSubview(cellSubView)

let itemClickedEvent = UITapGestureRecognizer(target: viewController.self, action: self.agendaItemClicked!  )
cell.addGestureRecognizer(itemClickedEvent)

还有一个 ViewController 实现如下:

@objc func eventDailyAgenda(sender:UIView!){
        print("Item clicked!")
    }

如您所见,第二个事件不在通用类内部,第二个事件是 ViewController 的单独实现。 但是,通用类将为其他 UIViewController 实现。

有人知道如何处理它吗?

最佳答案

查看 UIGestureRecognizerDelegate 以同时处理两种手势。查看回调 gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:) 。返回 true 以同时处理两者。

关于ios - 使用 swift 为自定义控件分配两个不同的 UITapGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49881003/

相关文章:

swift4 - KVO 在 Swift 4 中观察协议(protocol)

ios - UIImage 方向 Swift

ios - UIScrollView : only paging horizontally left, 向右弹跳

swift - 在可点击的 UIabel 中传递参数

ios - 在离线 Google Map iOS 上集成 KML

ios - 在插入 CoreData 之前检查文本字段是否为空

ios - 如何将数据从 UIViewsController 传递到 UIView,Swift

ios - 隐藏 iPad 上运行的 iPhone 应用程序的状态栏

Swift iOS 映射一个 double 组,将它们转换为日期,然后排序

objective-c - 将代码从 Objective-C 转换为 Swift