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

2021-07-06 06:05:40 字數 3098 閱讀 7555

一、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屬性決定

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

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

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

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

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

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

3.**示例

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

1//2

03-錨點等屬性4//

5//6//

7//89

#import

"yyviewcontroller.h"10

11@inte***ce

yyviewcontroller ()

1213

@end

1415

@implementation

yyviewcontroller

1617 - (void

)viewdidload

1829

30@end

顯示效果:

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

1 - (void

)viewdidload214

@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

04-隱式動畫4//

5//6//

7//89

#import

"yyviewcontroller.h"10

11@inte***ce

yyviewcontroller ()

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

13@end

1415

@implementation

yyviewcontroller

1617 - (void

)viewdidload

1833

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

3540

@end

效果:

關閉隱式動畫:

-(void)touchesbegan:(nsset *)touches withevent:(uievent *)event
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層的屬性

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