iOS 核心动画-1

 #import <QuartzCore/QuartzCore.h>  使用的这个框架

 CoreAnimation 核心动画 简称CA

 

 CALayer(图层) 和UIView的关系:

 

 在UIView中有一个layer属性作为根图层 ,跟图层没有隐式动画 跟图层上可以放其他子视图,在UIView中所有能看到的内容都包含在layer中

 CALayer负责视图中显示的内容和动画

 UIView负责监听和相应事件

 

 想学动画 必须从CALayer入手  熟练掌握

 

 由于CALayer在设计之初就考虑它的动画操作功能,CALayer很多属性在修改时都能形成动画效果,这种属性称为“隐式动画属性”。

 CALayer在修改他的属性时都能形成动画效果  这种动画效果  叫做隐式动画

 

 CALayer的常用属性

 

 属性 说明  是否支持隐式动画

 anchorPoint 锚点、定位点  锚点的描述是相对于 *自己* x、y位置比例而言的 默认在图像中心点(0.5,0.5)的位置  决定图层的哪一个点 显示在中心点的位置 是

 backgroundColor 图层背景颜色 是

 borderColor 边框颜色 是

 borderWidth 边框宽度 是

 bounds 图层大小 是

 contents 图层显示内容,例如可以将图片作为图层内容显示 是

 contentsRect 图层显示内容的大小和位置 是

 cornerRadius 圆角半径 是

 doubleSided 图层背面是否显示,默认为YES 否

 frame 图层大小和位置,不支持隐式动画,所以CALayer中很少使用frame,通常使用bounds和position代替 否

 hidden 是否隐藏 是

 mask 图层蒙版 是

 maskToBounds 子图层是否剪切图层边界,默认为NO 是

 opacity 透明度 ,类似于UIView的alpha 是

 position 决定图层在父视图的位置 图层位于 *父视图* 中心点位置,类似于UIView的center 是

 shadowColor 阴影颜色 是

 shadowOffset 阴影偏移量 是

 shadowOpacity 阴影透明度,注意默认为0,如果设置阴影必须设置此属性 是

 shadowPath 阴影的形状 是

 shadowRadius 阴影模糊半径 是

 sublayers 子图层 是

 sublayerTransform 子图层形变 是

 transform 图层形变

 

 以上支持隐式动画的属性 本质是这些属性的变动默认隐含了CABasicAnimation动画实现


- (void)test1

{

    //    CALayerUIView的关系:

    //    UIView中有一个layer属性作为根图层,根图层上可以放其他子图层,在UIView中所有能够看到的内容都包含在layer

    //    CALayer负责视图中显示的内容和动画

    //    UIView负责监听和响应事件

    

    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

    view.backgroundColor = [UIColor redColor];

    

    [self.view addSubview:view];

    

    //    图层上不可以添加监听和响应事件

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(testResponse:)];

    [view addGestureRecognizer:tap];

}

#pragma mark  -------------CALayer初体验---------

- (void)layerTest1

{

    myLayer = [[CALayer alloc]init];

    myLayer.bounds = CGRectMake(0, 0, 100, 100);

    //设置中心点

    myLayer.position = self.view.center;

    myLayer.backgroundColor = [UIColor redColor].CGColor;

    //子图层 是添加到 跟图层上的

    myLayer.cornerRadius = 50;

    myLayer.borderWidth  = 2;

    myLayer.borderColor  = [UIColor whiteColor].CGColor;

    //设置阴影颜色 必须设置shadowOpacity  阴影颜色的透明度 (默认是安全透明)

    myLayer.shadowColor  = [UIColor yellowColor].CGColor;

    myLayer.shadowOffset = CGSizeMake(-100, 100);

    myLayer.shadowOpacity = 1;

    [self.view.layer addSublayer:myLayer];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值