UIView & CALayer

主要說關於layer的anchorPoint,圖形變換的座標原點post

layer與view是一塊兒的,正常狀況下anchorPoint的值是(0.5, 0.5),也就是layer的正中央,若是想把座標原點變成如今layer的左上角,若是僅僅設置anchorPoint爲(0,0),這樣的結果是layer的左上角變到了原來的正中央(也就是改變了原來layer的位置position),那麼圖形的變換就不是原來layer的左上角了,而是原來的正中央,其實就是變換的實際物理點沒有變,只是邏輯上的值改了,此時還須要設置下layer的position爲(0,0),這樣就能夠把layer再拉回和原來的位置同樣,並且變換的座標原點變成原來的左上角。it

由於: 1)anchorPoint只是邏輯點,不是實際的物理顯示點io

            2)改變layer的anchorPoint的時候,也會改變layer的position,也就是改變了物理顯示點,因此當設置anchorPoint爲(0,0)的時候,座標的變換點確實變成了layer的左上角,可是它所佔據的物理顯示點仍是原來的layer的正中央,因此就把物理顯示點(position)變到了原來的正中央的位置,也就是(width/2.f, height/2.f),因此必須再設置下postion的值是(0,0),就能夠再把layer設置回最開始原來的位置。view

有點繞,須要多讀幾遍。vi

相關文章
相關標籤/搜索