iOS ProcessIOSios开发

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
上一篇下一篇

猜你喜欢

热点阅读