<1> Point
有時候我們想解決只點(diǎn)擊View的一部分區(qū)域去改變什么事情,我們就可以根據(jù)tuche時間里面去找點(diǎn)擊的點(diǎn)寝蹈,去判斷要做的事情,比如我們實(shí)現(xiàn)點(diǎn)擊View的左半View的顏色為淺紅色,點(diǎn)擊右半為淺藍(lán)色。
我們運(yùn)行Xcode我們相應(yīng)的點(diǎn)擊就會出現(xiàn)我們想要的效果了拐纱;這樣我們可以做到點(diǎn)擊某一塊去操作,點(diǎn)擊另外一塊操作另外一部分哥倔。戳玫。。未斑。。。
<2>containsPoint/hitTest
上面我們添加一個View蜡秽,背景色是淺藍(lán)色府阀,我們現(xiàn)在是點(diǎn)擊這個custView,背景色變?yōu)闇\黃色芽突,點(diǎn)擊View的左半View的顏色為淺紅色试浙,點(diǎn)擊右半為淺藍(lán)色。
custView屬于左邊區(qū)域寞蚌,我們要用到layer層的containsPoint或者h(yuǎn)itTest屬性來區(qū)別custView和左邊剩下的區(qū)域田巴。我們展示containsPoint,代碼如下:
顧名思義contains(包含)挟秤,就是說containsPoint可以理解成判斷觸摸的point準(zhǔn)確的位置壹哺,就好像NSResponder大層到小層的大的擁有小得關(guān)系一樣。
layer層的containsPoint和hitTest的區(qū)別在于一個是返回BOOL值艘刚,一個返回的是View的本身管宵,實(shí)例代碼hitTest如下
顧名思義hit(點(diǎn)擊),就是說hitTest可以理解成判斷這個點(diǎn)準(zhǔn)確的在那層View上攀甚,就好像NSResponder小的就是大的一樣疗认,他的順序嚴(yán)格依賴圖層樹當(dāng)中的圖層順序菩帝;
<3>zPosition
zPosition基本上不會用到,就做簡單的介紹了,我們添加試圖都是按照順序來的二蓝,當(dāng)后一個(bView)有覆蓋上一個(aView),我們想展示aView全部惩猫,我就把a(bǔ)View.layer.zPosition = 1.0f霉颠,就可以顯示全部aView了,zPosition最實(shí)用的功能就是改變圖層的顯示順序鲸拥;有興趣的同學(xué)可以參看《iOS核心動畫高級技巧》3.3和3.4章拐格。