雨燕3.0: -
需要检测特定视图的感动,没有IBOutlet
,然后选择特定UIView
然后转到Attributes Inspector -> View -> tag
,并设置Integer
为任何标签需要。
![enter image description here](https://i.stack.imgur.com/5Z2PZ.png)
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
let tag = touch?.view?.tag
if tag == 1{
//Do More....
}else{
//......
}
}
如果您需要检查IBOutlet
,然后像做如下。
这里,@IBOutlet var diamondView: UIView!
if touch?.view == self.diamondView{
//Do More....
}else{
//......
}
更新:滚动查看
如果需要检测滚动视图的触摸然后使用UITapGestureRecognizer
。通过故事板拖放到UIViewController
并设置delegate
和gestureRecognizers
为scroll view
到UITapGestureRecognizer
。之后,就像下面的屏幕截图一样创建UITapGestureRecognizer
的动作。 ![enter image description here](https://i.stack.imgur.com/uHjUO.png)
添加UITapGesture编程: -
而且下面的代码工作正常,没有做到像上面的截图。
@IBOutlet var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.actionTapOnScrollView(sender:)))
self.scrollView.addGestureRecognizer(tapGesture)
}
@objc private func actionTapOnScrollView(sender:UITapGestureRecognizer){
print("user Touched")
}
当应用程序使用“后台应用程序重新启动”时,您是否需要检测特定“UIView”或“检测触摸”屏幕? –
我只需要检测屏幕触摸,而不是后台刷新。我也需要它在代码中完成。我想检测整个控制器的视图(以及扩展的子视图),而不仅仅是一个特定的视图。 – zkon