IOS 之 CALayer详解

CALayer 是视图中真正绘图的一层。UIview主要是接受用户的交互。

每一个UIView 中 都包含CALayer 。

但是如果想对CALayer进行深层次的开发的话还的引入 

QuartzCore  框架 该框架是跨平台的,比如在开发mac osx 平台下开发,也是有该框架的。

也就是说在max osx 开发的软件也是有层CALayer 的概念的。

设置圆角


 UIView * v = [[UIView alloc] init];
    v.frame = CGRectMake(0, 0, 50, 50);
    v.backgroundColor = [UIColor grayColor];
    v.center =self.view.center;
    [self.view addSubview:v];
    //设置圆角
    v.layer.cornerRadius = 25;

设置边框

  //设置边框
    v.layer.borderColor = [UIColor whiteColor].CGColor;
    v.layer.borderWidth = 3.f;

设置阴影

 //设置阴影  必须设置的三个属性
    v.layer.shadowColor = [UIColor redColor].CGColor;
    v.layer.shadowOffset = CGSizeMake(0, 10);
    v.layer.shadowOpacity = 1.0f;

如果是在 UIImageView 中 设置图片  那么必须注意

    UIImageView * imageview = [[UIImageView alloc] init];
    imageview.frame = CGRectMake(0, 0, 50, 50);
    imageview.backgroundColor = [UIColor grayColor];
    imageview.center =self.view.center;
    [self.view addSubview:imageview];
    UIImage * image = [UIImage imageNamed:@"head.png"];
    imageview.image = image;
    imageview.layer.cornerRadius = 25;
    //需要设置该属性 如果有图片
    imageview.layer.masksToBounds = YES;

设置CALayer的行为方式

  //平移属性
    [imageview.layer setTransform:CATransform3DMakeTranslation(0, -100, 0)];
    //缩放属性
    [imageview.layer setTransform:CATransform3DMakeScale(1.0, 1.0, 1.0f)];
    //旋转属性  M_PI_2 90° M_PI_4 45°  M_PI 360°  x , y ,z 轴 一般 改哪个给哪个值为1
    [imageview.layer setTransform:CATransform3DMakeRotation(M_PI_4, 1, 0, 0)];

复习 KVC 换一种方式 

 //通过KVC
    [imageview.layer setValue:@100 forKeyPath:@"transform.translation.x"];
    [imageview.layer setValue:@0.5 forKeyPath:@"transform.scale"];
    [imageview.layer setValue:@M_PI_2 forKeyPath:@"transform.rotation.z"];

为什么是CGColor ?

因为 MAC 开发平台下 没有 UIKIT框架  UIColor 属于该框架下) 所以需要一个中介  使两个平台都可以使用也就是CGColor 中介

CATransForm3D 动画的使用    形变的方式有平移(translation)/缩放(scale) /旋转(rotation)

利用键值路径的去控制 使用方式 

transform.translation.x  transform.translation.y transform.translation.z   平移

transform.scale.x  transform.scale.y transform.scale.z   修改缩放

transform.rotation.x  transform.rotation.y transform.rotation.z    旋转

使用场景

    CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation"];








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值