1. CALayer是什么?
1.在iOS中, 我們所能看到的按鈕, 文本框, 標(biāo)簽, 輸入框等都是UIView. 但UIView之所以能顯示在屏幕上, 完全是因?yàn)樗麅?nèi)部的一個(gè)圖層, 在創(chuàng)建UIView對(duì)象時(shí), UIView內(nèi)部會(huì)自動(dòng)創(chuàng)建一個(gè)圖層, 就是CALayer對(duì)象. 通過(guò)UIView的layer屬性可以訪問(wèn):layer層
2.@property(strong, nonatomic) CALayer *layer;
3.當(dāng)UIView需要顯示到屏幕上時(shí), 會(huì)調(diào)用drawRect:進(jìn)行繪圖, 并且將所有繪制的內(nèi)容在自己的圖層上繪制, 給圖層繪制完畢時(shí), 系統(tǒng)將會(huì)拷貝圖層內(nèi)容到屏幕上, 完成UIview的顯示.
4.也就是說(shuō)UIView本身是不具有顯示功能的,真正擁有顯示功能的是它里面的layer層.
5. 所以通過(guò)UIView的圖層, 可以調(diào)整UIView的一些界面屬性, 例如:陰影, 圓角, 邊框, 顏色```
![CALyer.png](http://upload-images.jianshu.io/upload_images/1803308-55af10e899750d9d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####圖形一: 創(chuàng)建一個(gè)UIView對(duì)象, 然后修改該view的layer屬性
//第一步: 聲明一個(gè)UIView屬性
@property (strong, nonatomic) UIView *myView;
//第二步: 初始化該View
//初始化
self.myView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
//添加背景色
self.myView.backgroundColor = [UIColor colorWithRed:0.107 green:1.000 blue:0.000 alpha:1.000];
//添加到視圖上
[self.view addSubview:self.myView];
第三步: 修改layer屬性
//設(shè)置陰影, 透明度
self.myView.layer.shadowOpacity = 1;
//設(shè)置陰影顏色
self.myView.layer.shadowColor = [[UIColor colorWithRed:0.084 green:0.044 blue:0.493 alpha:1.000]CGColor];
//設(shè)置陰影圓角半徑
self.myView.layer.shadowRadius = 25;
//設(shè)置圓角半徑
self.myView.layer.cornerRadius = 50;
//設(shè)置邊框半徑
self.myView.layer.borderColor = [[UIColor colorWithRed:1.000 green:0.063 blue:0.125 alpha:1.000]CGColor];
//設(shè)置邊框?qū)挾?self.myView.layer.borderWidth = 1;
***
####圖形二: 創(chuàng)建一個(gè)CALayer 對(duì)象, 然后設(shè)置響應(yīng)的屬性
//創(chuàng)建對(duì)象
CALayer *layer = [CALayer layer];
//設(shè)置尺寸
layer.bounds = CGRectMake(0, 0, 100, 100);
//設(shè)置位置
layer.position = CGPointMake(200, 300);
//設(shè)置背景顏色
layer.backgroundColor = [[UIColor orangeColor]CGColor];
[self.view.layer addSublayer:layer];```