我正在使用存储在outlet集合中的一系列视图。
@IBOutlet var theViews: [UIView]!
在我的viewDidLoad函数中,我循环遍历视图集合,在此期间我创建了一个UITapGestureRecognizer并将其添加到视图中。
for v in theViews {
let tap = UITapGestureRecognizer(target: self, action: #selector(self.flipSingleView(sender:)))
tap.delegate = self
tap.numberOfTapsRequired = 1
tap.numberOfTouchesRequired = 1
v.addGestureRecognizer(tap)
v.isUserInteractionEnabled = true
}
以下是选择器指向的功能:
@objc func flipSingleView(sender: UITapGestureRecognizer) {
print("tapped")
}
附加说明:
答案 0 :(得分:2)
你提到你的观点是在一个插座集合中,所以我假设它看起来像这样:
@IBOutlet var myViews: [UIView]!
不确定你需要在那里扔的所有东西。试试这个:
// In viewDidLoad
myViews.forEach{ view in
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap(gesture:)))
tap.numberOfTapsRequired = 1
tap.delegate = self
view.addGestureRecognizer(tap)
}
对于你的经纪人:
@objc func handleTap(gesture: UIGestureRecognizer) {
print("tap")
}
最后,为代理方法添加一个部分,即使它只是空的:
extension ViewController: UIGestureRecognizerDelegate {
// TODO: Fill in as needed
}
要确定发送它的视图,您可以在视图中添加标记。