使用 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/