Swift - 触摸事件响应机制(UiView事件传递)
2017-05-31 09:42
369 查看
import UIKit
class FatherView: UIView {
override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
print("Detect Touch Event")
if (self.hidden == false) && (alpha > 0) {
for subview in subviews {
if CGRectContainsPoint(subview.frame, point) {
if subview.isKindOfClass(ChildView1) {
print("view 1")
return subview
}
if subview.isKindOfClass(ChildView2) {
print("view 2")
return subview
}
}
}
}
return nil
}
}
import UIKit
class ChildView1: UIView {}
import UIKit
class ChildView2: UIView {}
import UIKit
class ViewController: UIViewController {
let father = FatherView()
let child1 = ChildView1()
let child2 = ChildView2()
let child3 = ChildView2()
override func viewDidLoad() {
super.viewDidLoad()
father.frame = CGRectMake(0, 0, 100, 100)
child1.frame = CGRectMake(20, 20, 20, 20)
child2.frame = CGRectMake(120, 120, 120, 120)
child3.frame = CGRectMake(200, 200, 120, 120)
// father.clipsToBounds = true
father.backgroundColor = UIColor.grayColor()
child1.backgroundColor = UIColor.redColor()
child2.backgroundColor = UIColor.blueColor()
child3.backgroundColor = UIColor.greenColor()
view.addSubview(father)
father.addSubview(child1)
father.addSubview(child2)
father.addSubview(child3)
child1.addGestureRecognizer(
UITapGestureRecognizer(target: self, action: #selector(touchTest1)))
child2.addGestureRecognizer(
UITapGestureRecognizer(target: self, action: #selector(touchTest2)))
child3.addGestureRecognizer(
UITapGestureRecognizer(target: self, action: #selector(touchTest3)))
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func touchTest1() {
print("test 1\n")
}
func touchTest2() {
print("test 2\n")
}
func touchTest3() {
print("test 3\n")
}
}
相关文章推荐
- Swift - 触摸事件响应机制(UiView事件传递)
- Android 触摸事件传递机制
- 在cocos2d上添加UIView,触摸事件往下传递
- 初识Android触摸事件传递机制
- Android 高级进阶 - 触摸事件传递机制
- Android中触摸事件传递分发机制
- iOS触摸事件传递与响应链
- UIScrollView 响应触摸事件的机制
- 9.4 触摸和手势:事件的传递的机制
- Android触摸事件传递机制
- Android 触摸事件传递机制
- Android View触摸事件传递机制
- 史上最详细的iOS之事件的传递和响应机制
- Android_触摸事件传递机制
- 史上最详细的iOS之事件的传递和响应机制-原理篇
- ios 触摸事件无法响应之UIViewController的误用
- Android ViewGroup 触摸事件传递机制
- Android View触摸事件传递机制
- Android触摸事件传递机制及viewpager嵌套fragment冲突处理
- android中的Touch触摸事件传递机制