CALayer 層的屬性

2021-06-16 17:47:19 字數 2040 閱讀 3030

每乙個uiview內部都預設關聯著乙個calayer,我們可以稱這個layer為root layer(根層)。所有的非root layer,也就是手動建立的物件,都存在著隱式動畫。

當對非root layer的部分屬性進行相應修改時,缺省會自動產生一些動畫效果,這些屬性稱為 animatable properties(可動畫屬性)。

列舉幾個常見的animatable properties:

bounds:用於設定calayer的寬度和高度,修改這個屬性會產生縮放動畫。

backgroundcolor:用於設定calayer的背景顏色,修改這個屬性會產生背景色漸變的動畫。

position:用於設定calayer的位置,修改這個屬性會產生平移動畫。

我們可以從官網查詢animatable properties:

在搜尋框輸入 「animatable」即可

position 和 anchorpoint 

position 和 anchorpoint 的屬性都是cgpoint型別的。

position可以用來設定calayer在父層中的位置,它是以父層的左上角為座標原點(0,0)

anchorpoint 稱為「定位點」。它決定著calayer身上的那個點會在position屬性所指的位置。它的x,y取值範圍都是0~1,預設值為(0.5,0.5)。

建立乙個calayer,新增到控制器view的layer中

calayer

*mylayer = [

calayer

layer];

//設定層的寬度和高度(100*100)

mylayer.bounds = cgrectmake(0, 0, 100, 100);

//設定層的位置

mylayer.position = cgpointmake(100, 100);

//設定層的背景顏色:red

mylayer.backgroundcolor= [uicolor

redcolor

].cgcolor;

//新增mylayer到控制器的view的layer中

[self.view.layer

addsublayer:mylayer];

因為mylayer的position為(100,100),anchorpoint預設值為(0.5,0.5)。所以最後的效果是mylayer的中點在父層的(100,100)位置。

(*藍色線是自己加上去的。*)

若將anchorpoint值改為(0,0),mylayer的左上角會在(100,100)位置。

若將anchorpoint值改為(1,1),mylayer的右下角會在(100,100)位置。

若將anchorpoint值改為(0,1),mylayer的左下角會在(100,100)位置。

anchorpoint 決定著calayer身上的哪個點會在position所指定的位置上。

CALayer層的屬性

一.position和anchorpoint 1.簡單介紹 calayer有2個非常重要的屬性 position和anchorpoint position 1 用來設定calayer在父層中的位置 2 以父層的左上角為原點 0,0 anchorpoint 1 稱為 定位點 錨點 2 決定著calay...

CALayer 層的屬性

本文目錄 回到頂部 在前面幾講中已經提到,每乙個uiview內部都預設關聯著乙個calayer,我們可用稱這個layer為root layer 根層 所有的非root layer 也就是手動建立的calayer物件,都存在著隱式動畫。當對非root layer的部分屬性進行相應的修改時,缺省會自動產...

CALayer3 層的屬性

在前面幾講中已經提到,每乙個uiview內部都預設關聯著乙個calayer,我們可用稱這個layer為root layer 根層 所有的非root layer 也就是手動建立的calayer物件,都存在著隱式動畫。當對非root layer的部分屬性進行相應的修改時,缺省會自動產生一些動畫效果,這些...