iOS开发中的核心动画

一直就很痴迷与app中的动画效果,适当的运用动画效果,可以使我们的app看起来更炫酷,所以闲来无事,就做了一个视图加载中的小demo,往后还会一点点制作更强大更炫酷的动画效果,我们一起加油吧。顺便给大家推荐几个很好的开源的动画库:

·lottie by Airbnb,自从有了这个开源库,简直节省了开发人员相当一部分的时间,因为运用AE制作的动画效果,可以导出JSON格式,然后运用Lottie就可以轻松的完成酷炫的动画效果,值得一用,很棒。

·IBAnimatable ib类的交互,不用写代码,就可以完成动画效果

·Spring 

网上找的视频转gif的工具,效果有点low,但其实,真是实际运行是木有那个黑色框框的,所以不要看到边框就走了啊,哈哈哈。写的也很简单,相信大家,一看就懂,喜欢的不喜欢的都请大家留言,多多交流,相互学习,共同进步,为了我们远大的前程!!最近电视剧看的有点多了啊,话不多说,先来个效果图吧。

效果图

所用到的知识点:

·CALayer、CAShapeLayer、CAGradientLayer三种layer。

·UIBeizerPath的使用,这里只是简单的画一个圆,并未用到,二次,三次贝塞尔曲线,所以很容易理解

·CAKeyframeAnimation 关键帧动画

首先拿到动画效果的时候,不要怕,即使你真的很怕,哈哈,但是气势不能输,但是首先一层一层一步一步的分析,其实并没有想象中的那么难。


颜色渐变

1.CAGradientLayer:很容易实现上图按钮的渐变效果,核心代码

CAGradientLayer *layer = [[CAGradientLayer alloc] init];

layer.frame = self.bounds;

layer.colors = arr;

layer.startPoint = CGPointMake(0, 1);

layer.endPoint = CGPointMake(0, 0);

[self.layer addSublayer:layer];

2.CAShapeLayer:指定小圆点的位置

CAShapeLayer *dotlayer = [[CAShapeLayer alloc] init];

dotlayer.frame = CGRectMake( DOT_WIDTH*index, 3, DOT_WIDTH, DOT_HEIGHT);

3.UIBezierPath:在指定位置绘制会小圆圈

UIBezierPath *dotPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(R, R) radius:R startAngle:M_PI_2 endAngle:2.5*M_PI clockwise:true];

dotlayer.path = dotPath.CGPath;

dotlayer.fillColor = self.dotColor.CGColor;

4.CAKeyframeAnimation:给layer添加动画

CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];

animation.values =@[@(0),@(0.25),@(0.5), @(0.75),@(0.9),@(1),@(0.9),@(0.75),@(0.5),@(0.25),@(0)]; animation.duration = 1.35;

animation.beginTime = CACurrentMediaTime() + 0.2*index;

animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; animation.repeatCount = MAXFLOAT;


好了,先到这里吧,后期再补充更多关于核心动画的知识。敬请期待。。。。。

你可能感兴趣的:(iOS开发中的核心动画)