(一二〇)CALayer的一些特性
阿新 • • 發佈:2017-08-04
-s root transacti nds color resp med 註意 隱式
須要註意的是,CALayer來自QuartzCore框架。是跨平臺的,而UIColor、UIImage等來自UIKit框架,僅限於iOS系統使用,因此要設置背景、layer內容。一定要進行轉換。
2.Layer另一個錨點屬性,能夠設置postion的參考點,錨點分為x、y坐標。範圍是0~1,(0,0)代表position從圖片左上角開始計算(默認值),(0.5,0.5)則代表以圖片中心點開始計算,這時候postion就相當於center屬性,以此類推,通過錨點屬性能夠簡化坐標運算。
1.每一個View都自帶一個CALayer,稱為rootLayer,layer能夠和實現與View一樣的顯示功能,可是它不繼承UIResponse,也就是說它無法處理事件,所以為了處理事件還是要用View,假設僅僅是顯示,能夠選擇layer。
以下的代碼實現了自己定義一個layer加入到控制器的rootLayer上,layer能夠正常顯示。
CALayer *layer = [CALayer layer]; layer.bounds = CGRectMake(0, 0, 200, 200); layer.position = CGPointMake(200, 200); layer.backgroundColor = [UIColor redColor].CGColor; [self.view.layer addSublayer:layer];
須要註意的是,CALayer來自QuartzCore框架。是跨平臺的,而UIColor、UIImage等來自UIKit框架,僅限於iOS系統使用,因此要設置背景、layer內容。一定要進行轉換。
以下的代碼實現了設置layer的內容為一張圖片:
layer.contents = (__bridge id)[UIImage imageNamed:@"header.png"].CGImage;
2.Layer另一個錨點屬性,能夠設置postion的參考點,錨點分為x、y坐標。範圍是0~1,(0,0)代表position從圖片左上角開始計算(默認值),(0.5,0.5)則代表以圖片中心點開始計算,這時候postion就相當於center屬性,以此類推,通過錨點屬性能夠簡化坐標運算。
3.Layer還具有隱式動畫特性,所謂隱式動畫,指的是假設UIView上有除rootLayer以外的layer,當那個layer的一些可運行動畫的屬性被改動時,會自己主動運行動畫。比如transform。假設要消除隱式動畫,須要通過提交事務的方式聲明,以下的代碼實現了對隱式動畫的取消:
[CATransaction begin]; // 開啟一個事務 [CATransaction setDisableActions:YES]; _layer.transform = CATransform3DMakeTranslation(100, 100, 0); [CATransaction commit]; // 提交事務
(一二〇)CALayer的一些特性