視圖的
frame
猫牡、bounds
和center
(對應于圖層是position
)屬性僅僅是存取方法,當操縱視圖的frame
坏为,實際上是在改變位于視圖下方CALayer
的frame
逗抑,不能夠獨立于圖層之外改變視圖的frame
對于視圖或者圖層來說,
frame
并不是一個非常清晰的屬性夹攒,它其實是一個虛擬屬性蜘醋,是根據(jù)bounds
,position
和transform
計算而來咏尝,所以當其中任何一個值發(fā)生改變压语,frame
都會變化。相反编检,改變frame
的值同樣會影響到他們當中的值-
frame
胎食、bounds
和center
的區(qū)別如下圖所示:
(圖一)frame、bounds和center對比
(圖二)旋轉后frame允懂、bounds和center對比 -
圖層的
anchorPoint
屬性被暴露出來厕怜,anchorPoint
和contentsRect
屬性類似,用單位坐標來描述蕾总。改變anchorPoint
粥航,會改變圖層的frame
。如下圖三所示
(圖三)改變anchorPoint后生百,frame值對比
最重要的是递雀,圖層的旋轉是以anchorPoint
為旋轉中心的。
5.圖層具有一個叫做geometryFlipped
蚀浆,類型為BOOL
的屬性缀程。設置這個屬性為YES
后,它的子圖層的坐標系會垂直翻轉市俊,即以左下角作為原點杨凑。若再將一個子圖層的geometryFlipped
設置為YES
,則這個圖層的子圖層會再次翻轉摆昧,相當于沒有經過翻轉了蠢甲。
6.對于圖層position
與anchorPoint
的理解參考這個鏈接(position
是layer
中的anchorPoint
點在superLayer
中的位置坐標):http://blog.csdn.net/yongyinmg/article/details/37927793。 anchorPoint
的改變据忘,會影響圖層旋轉的效果。
7.正常情況下搞糕,圖層是根據(jù)它們子圖層的sublayers出現(xiàn)的順序來進行繪制的勇吊。但通過改變zPosition可以改變圖層的顯示順序。(zPosition不會改變事件傳遞的順序)
8.圖層的hitTest:
方法可以檢測圖層是否被點擊窍仰。如果被點擊的點包含在當前圖層的子圖層汉规,就會返回最后一個包含該點的圖層。如果子圖層都沒有包含,但當前圖層包含該點针史,就會返回當前圖層晶伦。否則,就返回nil
啄枕。