CALayer的基本使用
2015-05-17 本文已影响1362人
大玲_
1.CALayer是核心动画的基础,可以做圆角、阴影、边框等效果。
2.每个UIview内部都有一个Layer的属性。
3.在实现核心动画时,本质上将CALayer中的内容转换成位图,从而便于图形硬件的操纵。
4.在使用CALayer是要添加QuartzCore框架。
5.UIKit 框架只能在IOS开发使用不能在MAC开发使用,但是Quartz 2D 是可以跨平台的,因此在使用颜色、image时要将结果进行转化。转化为CG·····的。
6.修改图层相当于修改UIview的属性,即修改界面的属性。
7.形变属性既可以使用形变函数制定,也可以使用keyPath指定。
CALayer可以设置一下属性:
bounds:宽度和高度。
position:位置(默认为中心点,具体由anchorPoint决定)
anchorPoint:锚点(x,y的范围是0-1)决定了position的含义。
backgroundColor:背景颜色(CGcolorRef类型)
borderColor:边框颜色(CGColorRef类型)
borderWidth:边框宽度
borderRadius:圆角半径
content:内容
transform可以调整CALayer的形变,包括:旋转、缩放、平移。
transform属性的参数可以查询:CATransform。
直接看代码:
UIImage *image = [UIImage imageNamed:@"1.JPG"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
[imageView setFrame:CGRectMake(50, 50, 200, 200)];
[self.view addSubview:imageView];
//1.圆角半径
//提示imageview中 图层不止一个 如果要实现圆角效果 需要设置一个跟谁属性
//setMasksToBounds 可以让imageview中所有的子图层跟谁imageview一起变化
[imageView.layer setMasksToBounds:YES];
imageView.layer.cornerRadius = 50.0f;
//2.阴影
//提示 如果设置了 setMasksToBounds属性 imageview的阴影属性无效
[imageView.layer setShadowColor:[UIColor redColor].CGColor];
[imageView.layer setShadowOffset:CGSizeMake(10.0, 10.0)];
[imageView.layer setShadowOpacity:1.0f];
//3.边框
[imageView.layer setBorderColor:[UIColor blueColor].CGColor];
[imageView.layer setBorderWidth:3.0f];
//4.形变属性 在CAlyer中 形变属性是3d的 不再是2d的
//注意 : 形变参数在使用set方法是 只能使用一种形变
//4.1 平移属性
// [imageView.layer setTransform:CATransform3DMakeTranslation(0, 300, 0)];
// //4.2 缩放苏醒
// [imageView.layer setTransform:CATransform3DMakeScale(0.5, 0.5, 1.0)];
// //4.2旋转属性 通常在旋转时 使用z轴即可 要沿着那个轴转 就设置为1 x,y 旋转90为不可见状态
// [imageView.layer setTransform:CATransform3DMakeRotation(M_PI_4, 0, 0, 1)];
//5.利用keyPath设置形变 但是属性不要出错 可以在文档中进行搜索(transform3D)
//5.1平移
[imageView.layer setValue:@-100 forKeyPath:@"transform.translation.x"];
//5.2缩放
[imageView.layer setValue:@0.5 forKeyPath:@"transform.scale"];
//5.3旋转
[imageView.layer setValue:@M_PI_2 forKeyPath:@"transform.rotation.z"];
效果:
D55EE72B-C656-4038-915D-B2A430F8D357.png