【发布时间】:2018-02-11 03:26:28
【问题描述】:
我正在处理存储在插座集合中的一系列视图。
@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")
}
补充说明:
- 为这些视图启用了用户交互
- flipSingleView 内部的断点永远不会到达
- View Controller 实现 UIGestureRecognizerDelegate(我查看了协议,没有看到在这种情况下有用的函数)
- 已验证所有有问题的视图都与插座集合有插座连接
- 控制台不会打印任何内容
【问题讨论】:
-
你的代码没问题。我在模拟器上试了一下,效果很好。确保父视图也有
isUserInteractionEnabled = true。
标签: ios uiview swift4 uitapgesturerecognizer