##1、CALayer與UIView之間不得不說的祕密 在咱們學習使用CALayer以前,咱們先來回顧下UIView的基礎建立和使用。 ###一、UIView的基本建立建立和設置 首先咱們來看看UIView的簡單建立和一些簡單的設置,以及怎樣將建立好的UIView添加到VIew界面上進行顯示的。學習
//利用初始化的方式建立一個UIView並固定UIView在View上的顯示位置 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 100, 330, 200)]; //設置VIew上的背景顏色 view.backgroundColor = [UIColor redColor]; //將建立好的UIView添加到主界面View上 [self.view addSubview:view];
從上面的示例代碼中咱們能夠看出來,建立一個UIView是很簡單的,同時設置它的各方面的屬性也是很簡單的,只須要根據它的屬性代碼來設置就行了,最後將建立設置好的UIView添加到主界面view上進行顯示就行了 ###二、CALayer的基本建立和設置 上面咱們已經瞭解了UIView的簡單的建立和設置,那麼這裏咱們也來看看CALayer的簡單的建立和設置字體
// 利用初始化的方式來建立一個CALayer,同時固定其初始顯示的位置和設置相應的屬性 CALayer *layer = [[CALayer alloc] init]; layer.frame = CGRectMake(10, 320, 330, 200); //設置layer的顯示顏色 layer.backgroundColor = [UIColor blueColor].CGColor; // 將圖層添加到父圖層 [self.view.layer addSublayer:layer];
###三、CALayer和UIView之間的相同點了不一樣點 經過上面兩個視圖的建立示例代碼咱們能夠看出來兩個視圖之間存在相同點也存在不一樣點:code
相同點:
圖片
不一樣點:
ci
#2、CALayer的基本設置 上面咱們看了CALayer的基本建立和一些簡單的基本屬性,那麼接下來咱們來看看CALayer視圖的一些基本設置;string
##一、簡單屬性的設置it
屬性名 | 用途 | 備註 |
---|---|---|
bounds | 尺寸 | 可用CGRectMake來肯定視圖的顯示尺寸 |
position: | 定位點 | 肯定CAlayer視圖的中心定位點 |
anchorPoint | 錨點 | 決定layer上的哪一個點在 position 點上,默認(0.5, 0.5),範圍:(0,0) ~ (1,1) |
zPosition | z方向的層級 | 用來肯定CALayer視圖在z方向上的視圖 |
cornerRadius | 設置圓角 | 設置視圖四個角的圓滑弧度,使其看着沒有那麼銳利 |
masksToBounds | 剪切 | 是否能夠裁剪多餘的圖層,默認爲NO |
對於這些簡單屬性的設置我就不一一羅列了,其實都是同樣的都是經過上面的屬性來定義就好。eg:
io
// 尺寸 layer.bounds = CGRectMake(0, 0, 200, 200); // 定位點 layer.position = self.view.center; // 錨點、支點 layer.anchorPoint = CGPointMake(0.5, 0.5);
以上則是CALayer的一些基本屬性的設置,固然除去這些簡單基本屬性還有一些其餘相對來講稍顯複雜的屬性,那麼下面我就來爲你們簡單的介紹一些CALayer中的一些稍顯複雜的屬性。table
##二、複雜(特殊)屬性的設置基礎
eg
://設置CALayer視圖的邊框顏色和寬度 layer.borderWidth = 5; layer.borderColor = [UIColor lightGrayColor].CGColor;
eg
:// 設置陰影、 尺寸、 layer.shadowOffset = CGSizeMake(10, 5); //設置顏色 layer.shadowColor = [UIColor redColor].CGColor; //設置透明度,透明度通常爲(0~1) layer.shadowOpacity = 0.5; //設置圓角,圓角值都是大於0的數,數值越大圓角幅度越大 layer.shadowRadius = 10;
eg:
layer.contents = (__bridge id _Nullable)([UIImage imageNamed:@"image4.jpg"].CGImage);
經過上面這個代碼咱們能夠看出來給CALayer中填充圖片內容再也不是想UIView中那樣的直接填充了,而是須要將 UIImage 橋接(__bridge)到CGImage,注意:(__bridge id _Nullable),這個是用來將UIVIew中的一些控件轉換爲CALayer中可使用的關鍵代碼
eg
//建立CATextLayer CATextLayer *textLayer = [[CATextLayer alloc] init]; //肯定位置 textLayer.frame = CGRectMake(10, 550, 300, 30); //設置填充內容 textLayer.string = @"這是layer填充的文字內容"; //設置CATextLayer在沒有顯示字體以前的顏色 textLayer.foregroundColor = [UIColor blackColor].CGColor; //設置CATextLayer 的背景顏色 textLayer.backgroundColor = [UIColor redColor].CGColor; //設置顯示的字體高度和須要開闢顯示字體的寬度 textLayer.font = (__bridge CFTypeRef _Nullable)([UIFont systemFontOfSize:20 weight:500]); //設置顯示的文字高度 textLayer.fontSize = 20; //設置文字對齊方式 textLayer.alignmentMode = @"center";
以上就是CALayer的簡單的建立和一些簡單的屬性設置,今天咱們就介紹到這裏,明天咱們再來介紹CALayer的一些基本使用!