斯威夫特 3.0:-
需要在没有 的情况下检测特定视图的触摸IBOutlet
,然后选择该特定视图UIView
然后转到Attributes Inspector -> View -> tag
并设置Integer
为任何需要的标签。
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
以编程方式添加 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")
}