我有一个自定义UIView
,可以简化为:
class Node: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
let tapGR = UITapGestureRecognizer(target: self, action: "createChildNode")
addGestureRecognizer(tapGR)
userInteractionsEnabled = true
}
/* ... */
func createChildNode() {
let childNode = Node(frame: self.bounds.offset(dx: 100, dy: 100))
self.addSubview(childNode)
}
}
在视图控制器中创建第一个(根)节点:
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(Node(x: 100, y: 100, width: 150, height: 40))
}
对于根节点,一切都按预期工作。但是,对于根节点的子节点,没有任何作用。
为了确保我没有错误地使用UITapGestureRecognizer,我试图覆盖Node类的原始touchesBegan
函数并执行一个简单的println(" tapped")。然而问题仍然存在,似乎是子视图根本没有接触到任何接触。
导致这种情况的原因是什么?