核心动画CoreAnimation

核心动画CoreAnimationoop

基本动画:CABasicAnimation动画

帧动画:CAKeyframeAnimationspa

组动画:CAAnimationGroupcomponent

CoreAnimation时直接做用在CALayer上的,并不是UIView。orm

CABasicAnimation:平移,旋转,缩放视频

CAKeyframeAnimation:按路径移动对象

若想将关键帧动画中的路径绘制出来,建立一个继承自UIView的子类,与self.view关联,在子类UIView中的drawRect方法中绘制。继承

1、基本动画的建立步骤:图片

建立基本动画对象,设置动画的属性(value,duration),将动画添加到要做用layer。事务

动画完成后默认会回到初始位置,此时若想layer定在动画完成时的位置,须要设置动画完成后不删除且修改fillMode为kCAFillModeForwards。

注意:

若是fillMode=kCAFillModeForwards和removedOnCompletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态。但在实质上,图层的属性值仍是动画执行前的初始值,并无真正被改变。好比,CALayer的position初始值为(0,0),CABasicAnimation的fromValue为(10,10),toValue为(100,100),虽然动画执行完毕后图层保持在(100,100)这个位置,实质上图层的position仍是为(0,0).

BasicAnimation:

fromValue:

toValue:

byValue:

指定keyPath的字符串内容@“transform.translation”、@“transform.scale”、@“transform.rotation”与value属性能够经过识别value值的类型,好比CGPoint、NSNumber、弧度来自动作出平移、缩放和旋转的动画。

2、帧动画的建立步骤:

建立帧动画对象,设置帧动画values和duration、repeatCount等属性,添加帧动画到layer上。

CALayer的属性:

1.若想获得带圆环的图片

能够设置图片所在layer的边框(border的width、color、cornerRadius),设置边框圆角并进行裁剪(maskToBounds)即可以获得带圆环的图片。

2.设置背景投影阴影

设置阴影颜色、偏移量、透明度。阴影模糊度shadowRadius。

3.若须要设置layer四周阴影,绘制阴影路径

阴影默认在右下角,左上无阴影,若想四边阴影宽度相同,设置x,y各自为多余宽度的一半。

禁用隐式动画步骤:

开启一个显式CATransaction事务

修改事务属性

提交事务

CADisplayLink 与 NSTimer 有什么不一样?


iOS设备的屏幕刷新频率是固定的,CADisplayLink在正常状况下会在每次刷新结束都被调用,精确度至关高。


NSTimer的精确度就显得低了点,好比NSTimer的触发时间到的时候,runloop若是在阻塞状态,触发时间就会推迟到下一个runloop周期。而且 NSTimer新增了tolerance属性,让用户能够设置能够容忍的触发的时间的延迟范围。


CADisplayLink使用场合相对专注,适合作UI的不停重绘,好比自定义动画引擎或者视频播放的渲染。


NSTimer的使用范围要普遍的多,各类须要单次或者循环定时处理的任务均可以使用。

从系统获取时间步骤:::

//获取当前日历

    NSCalendar *currentCal = [NSCalendar currentCalendar];

    //获取当前系统时间

    NSDate *currentDate = [NSDate date];

    //从当前时间中获取秒数

    NSDateComponents * components = [currentCal components:NSCalendarUnitMinute fromDate:currentDate];

    NSInteger minute = components.minute;

相关文章
相关标签/搜索