Swift 通过touchesBegan 方法获取用户点击的view,模拟连续点击效果
Posted 小炮陈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift 通过touchesBegan 方法获取用户点击的view,模拟连续点击效果相关的知识,希望对你有一定的参考价值。
一:代码实现
var mV:UIView! var flag = false override func viewDidLoad() { super.viewDidLoad() mV = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100 )) mV.backgroundColor = UIColor.red self.view.addSubview(mV) } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { for touch:AnyObject in touches{ // 方法一 // //获取用户点击的坐标 // var point = (touch as AnyObject).location(in: self.view) // //将用户点击的点坐标,从self.view.layer转换到mV.View.layer的点坐标 // point = self.mV.layer.convert(point, from: self.view.layer) // print("point\\(point)") // let point2 = self.mV.layer.convert(point, to: self.view.layer) // print("point2\\(point2)") // // if self.mV.layer.contains(point ){ // print(1) // } //方法二 //获取用户点击的坐标 var point = (touch as AnyObject).location(in: self.view) //返回在图层层次中包含point的view.layer的最远子代,即获取到用户点击的View的layer let layer = view.layer.hitTest(point) if layer == mV.layer{ //模拟连续点击效果 let t:UITouch = touch as! UITouch let i = t.tapCount if t.tapCount >= 2{ flag = true } if flag{ print(i) } } } flag = false }
二:效果显示
以上是关于Swift 通过touchesBegan 方法获取用户点击的view,模拟连续点击效果的主要内容,如果未能解决你的问题,请参考以下文章
触发 UIButton 时如何获取 touchesBegan 坐标?
Swift:Spritekit 中的多个场景,从第二个和第一个场景的不同 Sprite 节点类型调用 touchesBegan
touchesBegan Swift 2 自定义 SpriteKit 节点