CALayer 判断是否点击hitTest
CALayer并不关心任何响应链事件,所以不能直接处理触摸事件或者手势。但是它有一系列的方法帮你处理事件:containsPoint:
和hitTest:
。
下来看看这两个方法怎么使用 。
首先来看containsPoint
, 首先在界面上拖一个UIView出来 , 在上面放两份layer 。
ly1.frame = CGRectMake(0, 0, 20, 20)
ly1.backgroundColor = UIColor.redColor().CGColor
v1.layer.addSublayer(ly1)
ly2.frame = CGRectMake(40, 0, 20, 20)
ly2.backgroundColor = UIColor.redColor().CGColor
v1.layer.addSublayer(ly2)
大概就这样的
然后重写touchesBegan
方法
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
var p = (touches as NSSet).anyObject()?.locationInView(v1)