CoreAnimation简介
核心动画是一组非常强大的动画API,能过做出很多炫丽的动画,看上去很高大上,其中常用的四个动画类分别是CABasicAnimation,CAKeyframeAnimation,CAAnimationGroup,CATransition。
常用属性
1.removedOnCompletion YES代表动画执行完成后还原到初始状态,反之亦然
2.timingFunction介绍
kCAMediaTimingFunctionLinear 匀速运动
kCAMediaTimingFunctionEaseIn 缓慢进入,加速离开
kCAMediaTimingFunctionEaseOut 快速进入,缓慢离开
kCAMediaTimingFunctionEaseInEaseOut 缓慢进入,中间加速,缓慢离开
3.fillmode介绍
kCAFillModeForwards 动画结束后保持动画的状态 与removedOnCompletion=NO联用
kCAFillModeBackwards 动画从初始状态开始执行
kCAFillModeBoth 动画加入后开始之前,处于动画初始状态,动画结束后保持动画最后的状态
kCAFillModeRemoved 动画将在设置的 beginTime 开始执行(如没有设置beginTime属性,则动画立即执行),动画执行完成后会将layer的改变恢复原状
4.其他属性
duration:动画时长
fromValue:动画初始值
toValue: 动画结束值
autoreverses: 动画结束后执行可逆动画
repeatCount:重复次数
动画实例介绍
位移,缩放,旋转,透明度,背景色,帧动画,组动画,弹球
贝塞尔曲线介绍
UIBezierPath是一组绘制图形的API,功能也是非常强大,常用于视图渲染路径
常用方法
+ (instancetype)bezierPath; 初始化UIBezierPath对象
+ (instancetype)bezierPathWithRect:(CGRect)rect;画一个矩形
+ (instancetype)bezierPathWithOvalInRect:(CGRect)rect;画一个圆形
+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect cornerRadius:(CGFloat)cornerRadius;画一个圆角的矩形
+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;画一个圆角矩形,确定哪一个角是圆角
+ (instancetype)bezierPathWithArcCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;画一段圆弧
- (void)moveToPoint:(CGPoint)point;移动到某个点
- (void)addLineToPoint:(CGPoint)point;从某个定点连接一条直线
- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2;以endPoint为终点,以controlPoint1、controlPoint2两个点为控制点,绘制贝塞尔曲线
- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint;以endPoint为终点,以controlPoint为控制点,绘制二阶贝塞尔曲线。
- (void)closePath;连接起点和终点,使其成为一个闭合的图形
- (void)removeAllPoints;移除路径中所有的点
- (void)appendPath:(UIBezierPath *)bezierPath;增加一段路径
- (UIBezierPath *)bezierPathByReversingPath 翻转一段路径
- (void)applyTransform:(CGAffineTransform)transform;针对一段路径发生形变或者位移
- (void)setFill;路径填充颜色
- (void)setStroke;路径画线颜色
锚点介绍
锚点(anchorPoint)就是定位点,view的定位点默认就是中点(0.5,0.5),锚点(x,y)取值范围是0~1,如果锚点设置成(0,0),相当于先前的左上角(0,0)移动到以前的中点位置,向下移动w/2,向右移动w/2
时钟demo实例介绍
完整项目链接:https://gitee.com/lvzhehappy/animation.git