CALayer層的屬性

2021-07-11 05:36:44 字數 2758 閱讀 5904

一.position和anchorpoint

1.簡單介紹

calayer有2個非常重要的屬性:position和anchorpoint

position:

(1)用來設定calayer在父層中的位置

(2)以父層的左上角為原點(0,0)

anchorpoint:

(1)稱為」定位點」,」錨點」

(2)決定著calayer身上的哪個點會在position屬性所指的位置

(3)以自己的左上角為原點(0,0)

(4)它的x,y取值範圍都是0~1,預設值為(0.5,0.5)

2.圖示

anchorpoint

它的取值為0~1

紅色圖層的anchorpoint為(0,0)

紅色圖層的anchorpoint為(0.5,0.5)

紅色圖層的anchorpoint為(1,1)

紅色圖層的anchorpoint為(0.5,0)

position和anchorpoint

新增乙個紅色圖層到綠色圖層上,紅色圖層顯示到什麼位置,由position屬性決定

假設紅色圖層的position是(100,100)

到底把紅色圖層的哪個點移動到(100,100)的座標位置,錨點。

紅色圖層的錨點是(0,0)

紅色圖層的錨點是(0.5,0.5)

紅色圖層的錨點是(1,1)

紅色圖層的錨點是(0.5,0)

3.**示例

(1)沒有設定錨點。預設的錨點位置為(0.5,0.5)

@implementation

viewcontroller

- (void)viewdidload

- (void)didreceivememorywarning

@end

(2)設定錨點為(0,0)

@implementation

viewcontroller

- (void)viewdidload

- (void)didreceivememorywarning

@end

二.隱式動畫1.簡單說明

每乙個uiview內部都預設關聯著乙個calayer,我們稱這個layer為root layer(根層)。

所有的非root layer,也就是手動建立的calayer物件,都存在著隱式動畫

什麼是隱式動畫?

當對非root layer的部分屬性進行修改時,缺省會自動產生一些動畫效果。

而這些屬性稱為animatable properties(可動畫屬性)。

舉例幾個常見的可動畫屬性

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

(2)backgroudcolor:用於設定calayer的背景色。修改這個屬性會產生背景色的漸變動畫。

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

2.**示例

@implementation

viewcontroller

- (void)viewdidload

- (void)didreceivememorywarning

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

@end

關閉隱式動畫

//關閉隱式動畫

[catransaction begin];

[catransaction setdisableactions:yes];

//隱式動畫

_mylayer.bounds = cgrectmake(0, 0, 200, 60);

_mylayer.backgroundcolor = [uicolor yellowcolor].cgcolor;

[catransaction commit];

CALayer 層的屬性

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

CALayer 層的屬性

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

CALayer3 層的屬性

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