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...