iOS開發UI篇 CAlayer層的屬性

2021-07-23 06:21:48 字數 2635 閱讀 1653

ios開發ui篇—calayer層的屬性

一、position和anchorpoint

1.簡單介紹

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

@property cgpoint position;

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

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

@property cgpoint anchorpoint;

稱為「定位點」、「錨點」

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

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

它的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) 1

// 2//  yyviewcontroller.m 3

//  03-錨點等屬性 4

// 5

6 7//

8 9#import

"yyviewcontroller.h" 10

11@inte***ce

yyviewcontroller () 12

13@end 14

15@implementation

yyviewcontroller 16

17- (void

)viewdidload 18

29 30

@end

顯示效果:

(1)設定錨點位置為(0,0) 1

- (void

)viewdidload 2

14@end

顯示效果:

二、隱式動畫

1.簡單說明

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

所有的非root layer,也就是

手動建立的calayer物件,都存在著隱式動畫

什麼是隱式動畫?

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

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

列舉幾個常見的animatable properties:

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

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

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

2.**示例 1

// 2//  yyviewcontroller.m 3

//  04-隱式動畫 4

// 5

6 7//

8 9#import

"yyviewcontroller.h" 10

11@inte***ce

yyviewcontroller () 12

@property(nonatomic,strong)calayer *layer; 13

@end 14

15@implementation

yyviewcontroller 16

17- (void

)viewdidload 18

33 34

-(void

)touchesbegan:(nsset *)touches withevent:(uievent *)

event 35

40@end

效果:

關閉隱式動畫: 1

[catransaction begin]; 2

[catransaction setdisableactions:yes]; 3

//隱式動畫 4

self.layer.bounds=cgrectmake(0, 

0, 200, 

60); 5

self.layer.backgroundcolor=[uicolor yellowcolor].cgcolor; 6

[catransaction commit];

3.如何檢視calayer的某個屬性是否支援隱式動畫?

可以檢視標頭檔案,看有沒有animatable,如果有則表示支援。

也可以檢視官方文件

文件中標明的這些屬性都是支援隱式動畫的

iOS開發UI篇 CALayer簡介

ios開發ui篇 calayer簡介 一 簡單介紹 在ios中,你能看得見摸得著的東西基本上都是uiview,比如乙個按鈕 乙個文字標籤 乙個文字輸入框 乙個圖示等等,這些都是uiview。其實uiview之所以能顯示在螢幕上,完全是因為它內部的乙個圖層,在建立uiview物件時,uiview內部會...

iOS開發UI篇 CAlayer層的屬性

ios開發ui篇 calayer層的屬性 一 position和anchorpoint 1.簡單介紹 calayer有2個非常重要的屬性 position和anchorpoint property cgpoint position 用來設定calayer在父層中的位置 以父層的左上角為原點 0,0 ...

iOS開發UI篇 CAlayer層的屬性(一)

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