1. 每個(gè)UIView 都有 CALayer,即 UIView.layer,同時(shí) UIView是iOS系統(tǒng)中界面元素的基礎(chǔ),所有的界面元素都是繼承自它,所以,CALayer 應(yīng)用很廣泛
2. CALayer 能夠?qū)?UIView 做許多設(shè)定,如:陰影、邊框、圓角和透明效果等,且這些設(shè)定都是很有用的。
下面就逐個(gè)過(guò)下 CALayer 的一些重要屬性:
1. shadowPath : 設(shè)置 CALayer 背景(shodow)的位置
2. shadowOffset : shadow 在 X 和 Y 軸 上延伸的方向,即 shadow 的大小
3. shadowOpacity : shadow 的透明效果
4. shadowRadius : shadow 的漸變距離,從外圍開(kāi)始,往里漸變 shadowRadius 距離
5. masksToBounds : 很重要的屬性,可以用此屬性來(lái)防止子元素大小溢出父元素,如若防止溢出,請(qǐng)?jiān)O(shè)為 true
6. borderWidth 和 boarderColor : 邊框顏色和寬度,很常用
7. bounds : 對(duì)于我來(lái)說(shuō)比較難的一個(gè)屬性,測(cè)了半天也沒(méi)完全了解,只知道可以用來(lái)控制 UIView 的大小,但是不能控制 位置
8. opacity : UIView 的透明效果
9. cornerRadius : UIView 的圓角
測(cè)試代碼
- (void)viewDidLoad
{
[super viewDidLoad];
self.qiqiu=[[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 200, 300)];
self.qiqiu.p_w_picpath=[UIImage p_w_picpathNamed:@"氣球.png"];
[self.view addSubview:qiqiu];
//Test 1 陰影
//self.qiqiu.layer.shadowPath = [UIBezierPath bezierPathWithRect:viewSample.bounds].CGPath;
self.qiqiu.layer.shadowPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 400, 400)].CGPath;
self.qiqiu.layer.masksToBounds = NO;//不防止溢出
self.qiqiu.layer.shadowOffset = CGSizeMake(10, 10);//偏移
self.qiqiu.layer.shadowRadius = 5;
self.qiqiu.layer.shadowOpacity = 0.5;
//Test 2 邊框
self.qiqiu.layer.borderWidth = 2;
self.qiqiu.layer.borderColor = [[UIColor redColor] CGColor];
//Test 3 masksToBounds
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0,0, 500, 500)];
btn.backgroundColor = [UIColor lightGrayColor];
//[self.qiqiu addSubview:btn];
//self.qiqiu.layer.masksToBounds = true;
//Test 4 bounds
//self.qiqiu.layer.bounds = CGRectMake(200, 200, 500, 500);
//Test 5
self.qiqiu.layer.opacity = 0.5;
self.qiqiu.layer.cornerRadius = 5;
}