CALayer 的 position和anchorPoint屬性


在iOS 中,UIButton、UIImage等UIView 之所以能夠顯示在屏幕上,是因為其內部有一個圖層(CALayer)。通過UIView的layer 屬性可以訪問這個圖層:

@property(nonatomic,readonly,retain) CALayer *layer; 

當UIView需要顯示到屏幕上時,會調用 drawRect: 方法進行繪圖,並且會將所有內容繪制在自己的圖層上,繪圖完畢后,系統會將圖層拷貝的屏幕上,於是就完成了UIView的顯示。

UIView中有兩個容易混淆的屬性, postion 和 anchorPoint(錨點)。postion用來設置CALayer 在父層中的位置,anchorPoint決定着CALayer上的哪個點會在postion點上。舉個例子來說,紅色圖層要加在綠色圖層上。

(1)positon為(100,100),anchorPoint為(0,0),效果圖如下

(2)positon為(100,100),anchorPoint為(0.5,0.5),效果圖如下

(3)positon為(100,100),anchorPoint為(1,1),效果圖如下

(4)positon為(100,100),anchorPoint為(1,0.5),效果圖如下

即:anchorPoint決定着CALayer上的哪個點會在postion點上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM