ios 開發中CALayer的用法即UIView.layer

CALayer 是一個很常用的到的 Object,很經常使用,也很重要,同時又有比較多的屬性,嗯,必定要詳細瞭解下 php

CALayer 的原理很難懂,因爲我目前只注重運用,因此就說那些在實際開發中能用到的一些地方 測試

爲何說 CALayer 很重要呢:
1. 每一個UIView 都有 CALayer,即 UIView.layer,同時 UIView是 iOS系統中界面元素的基礎,全部的界面元素都是繼承自它,因此,CALayer 應用很普遍
2. CALayer 可以對 UIView 作許多設定,如:陰影、邊框、圓角和透明效果等,且這些設定都是頗有用的
下面就逐個過下 CALayer 的一些重要屬性:
1. shadowPath : 設置 CALayer 背景(shodow)的位置
2. shadowOffset : shadow 在 X 和 Y 軸 上延伸的方向,即 shadow 的大小
3. shadowOpacity : shadow 的透明效果
4. shadowRadius : shadow 的漸變距離,從外圍開始,往裏漸變 shadowRadius 距離
5. masksToBounds : 很重要的屬性,能夠用此屬性來防止子元素大小溢出父元素,如若防止溢出,請設爲 true
6. borderWidth 和 boarderColor : 邊框顏色和寬度,很經常使用
7. bounds : 對於我來講比較難的一個屬性,測了半天也沒徹底瞭解,只知道能夠用來控制 UIView 的大小,可是不能控制 位置
8. opacity : UIView 的透明效果
9. cornerRadius : UIView 的圓角
測試代碼:
- (void)viewDidLoad { [super viewDidLoad]; UIView *viewSample = [[UIView alloc] init]; [self.view addSubview:viewSample]; viewSample.backgroundColor = [UIColor greenColor]; viewSample.frame = CGRectMake(100, 100, 400, 400); //Test 1 陰影 //viewSample.layer.shadowPath = [UIBezierPath bezierPathWithRect:viewSample.bounds].CGPath; viewSample.layer.shadowPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 400, 400)].CGPath; viewSample.layer.masksToBounds = NO; viewSample.layer.shadowOffset = CGSizeMake(10, 10); viewSample.layer.shadowRadius = 5; viewSample.layer.shadowOpacity = 0.5; //Test 2 邊框 viewSample.layer.borderWidth = 2; viewSample.layer.borderColor = [[UIColor redColor] CGColor]; //Test 3 masksToBounds UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0,0, 500, 500)]; btn.backgroundColor = [UIColor lightGrayColor]; //[viewSample addSubview:btn]; //viewSample.layer.masksToBounds = true; //Test 4 bounds //viewSample.layer.bounds = CGRectMake(200, 200, 500, 500); //Test 5 viewSample.layer.opacity = 0.5; viewSample.layer.cornerRadius = 5; }
相關文章
相關標籤/搜索