<1> Point
有时候我们想解决只点击View的一部分区域去改变什么事情,我们就可以根据tuche时间里面去找点击的点,去判断要做的事情,比如我们实现点击View的左半View的颜色为浅红色,点击右半为浅蓝色。
我们运行Xcode我们相应的点击就会出现我们想要的效果了;这样我们可以做到点击某一块去操作,点击另外一块操作另外一部分。。。。。。
<2>containsPoint/hitTest
上面我们添加一个View,背景色是浅蓝色,我们现在是点击这个custView,背景色变为浅黄色,点击View的左半View的颜色为浅红色,点击右半为浅蓝色。
custView属于左边区域,我们要用到layer层的containsPoint或者hitTest属性来区别custView和左边剩下的区域。我们展示containsPoint,代码如下:
顾名思义contains(包含),就是说containsPoint可以理解成判断触摸的point准确的位置,就好像NSResponder大层到小层的大的拥有小得关系一样。
layer层的containsPoint和hitTest的区别在于一个是返回BOOL值,一个返回的是View的本身,实例代码hitTest如下
顾名思义hit(点击),就是说hitTest可以理解成判断这个点准确的在那层View上,就好像NSResponder小的就是大的一样,他的顺序严格依赖图层树当中的图层顺序;
<3>zPosition
zPosition基本上不会用到,就做简单的介绍了,我们添加试图都是按照顺序来的,当后一个(bView)有覆盖上一个(aView),我们想展示aView全部,我就把aView.layer.zPosition = 1.0f,就可以显示全部aView了,zPosition最实用的功能就是改变图层的显示顺序;有兴趣的同学可以参看《iOS核心动画高级技巧》3.3和3.4章。