美文网首页iOS
iOS创建撒花动画

iOS创建撒花动画

作者: 开源大同 | 来源:发表于2017-04-09 21:34 被阅读202次

一、介绍

在很多的游戏中,会有这么一个桥段,就是闯关成功后,会弹出一个奖品同时出现很多的鲜花或者笑脸。例如微信中祝福生日时,出现蛋糕等等。那么,这次我就来实现这个功能。

本人的博文多写在博客园,欢迎浏览:http://www.cnblogs.com/XYQ-208910/


二、实现原理

对外接收一个图片,然后给对应的每一张图片创建CADisplaylink定时器,开启计时器后,在计时器定义的方法中不停的绘制UIImageView,使其从视图顶部下落到顶部后慢慢改变透明度,直至消失。

对外暴露两个方法即可:

(1)开始撒花动画,接收图片参数,开启所有的计时器

(2)结束撒花动画,销毁所有的计时器


三、实现类

FlowFlower(动画):

@interface FlowFlower : NSObject

/**

类方法创建对象

@param images 花图片数组

*/

+ (FlowFlower *)flowerFLow:(NSArray *)images;

/**

启动落花

@param view  飞行的视图区域

*/

- (void)startFlyFlowerOnView:(UIView *)view;

/**

结束落花

*/

- (void)endFlyFlower;

@end

UIImage (Extension)分类,通过颜色绘制图片,同时可以改变图片尺寸:

@interface UIImage (Extension)

/**

*  按照指定的颜色返回一个图片

*  @param color 给定的图片颜色

*  @return 图片

*/

+ (UIImage *)imageWithColor:(UIColor *)color;

/**

*  按照指定的大小返回一个图片

*  @param itemSize  给定的大小

*  @param imageName 给定的名称

*  @return 图片

*/

+ (UIImage *)imageWithSize:(CGSize)itemSize imageName:(NSString *)imageName;

/**

*  利用qurazt2D画图的方法返回旋转后的图片

*  @param image      原始图片

*  @param orientation 旋转方向

*/

+ (UIImage *)image:(UIImage *)image rotation:(UIImageOrientation)orientation;

/**

UIImage:去色功能的实现(图片灰色显示)

@param sourceImage 图片

*/

+ (UIImage *)grayImage:(UIImage *)sourceImage;

@end

四、测试

- (void)viewDidLoad {

        [super viewDidLoad];

        [self FlyFaceImage];

}

#pragma mark - 鲜花

-(void)FlyColorImage{

         //#FFBF00 #038AE6 #73D0F5 #D93600 #FFFF00 #63DB59 彩片颜色值

         UIImage *image1 = [UIImage imageWithColor:UIColorFromRGB(0xFFBF00)];

          UIImage *image2 = [UIImage imageWithColor:UIColorFromRGB(0x038AE6)];

          UIImage *image3 = [UIImage imageWithColor:UIColorFromRGB(0x73D0F5)];

          UIImage *image4 = [UIImage imageWithColor:UIColorFromRGB(0xD93600)];

          UIImage *image5 = [UIImage imageWithColor:UIColorFromRGB(0xFFFF00)];

          UIImage *image6 = [UIImage imageWithColor:UIColorFromRGB(0x3DB59)];

          //飞行

          _flowFlower = [FlowFlower      flowerFLow:@[image1,image2,image3,image4,image5,image6]];

          [_flowFlower startFlyFlowerOnView:self.view];

}

#pragma mark - 表情

-(void)FlyFaceImage{

        //face

         UIImage *faceImage = [UIImage imageNamed:@"face.png"];

         //飞行

         _flowFlower = [FlowFlower flowerFLow:@[faceImage]];

          [_flowFlower startFlyFlowerOnView:self.view];

}

五、源码

github:https://github.com/xiayuanquan/FlowFlower

六、演示截图和视频

flower.png face.png

相关文章

  • iOS创建撒花动画

    一、介绍 在很多的游戏中,会有这么一个桥段,就是闯关成功后,会弹出一个奖品同时出现很多的鲜花或者笑脸。例如微信中祝...

  • iOS Animation创建及使用

    iOS 实现的基本动画 头尾式动画 2.block动画的方法 iOS显示关键帧动画 关键帧动画 动画的创建和使用 ...

  • 博览- 品雪

    iOS 前端: 使用 iOS 8 Spring Animation API 创建动画 transitiontr...

  • 类似今日头条点赞长按动画效果-CAEmitterLayer

    1. CAEmitterLayer是一款高性能的粒子引擎,用来创建实时的粒子动画:撒花、火焰、烟雾(因为没有合适的...

  • iOS面试题-每日十道-第四天

    一. 简述iOS动画机制 iOS分为显式动画,隐式动画 显式动画: 对一些属性做指定的自定义动画,或者创建非线性动...

  • Android UI:撒花动画

    CoolAnimaions(一) github 最近做一个喝水的项目,喝水达到目标量要一个酷炫的动画,看到有些ap...

  • iOS动画

    iOS动画有隐式和显示之分。隐式动画指的是,无须创建动画对象,只需改变动画层的属性,让核心动画自己去完成动画效果,...

  • iOS动画简介

    概述 这里主要就iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,...

  • iOS核心动画高级技巧六(显式动画)

    目录 属性动画动画组过渡在动画过程中取消动画总结 序言 前面介绍了隐式动画的概念。隐式动画是在iOS平台创建动态用...

  • iOS路径动画创建

    //路径动画,三步曲 //1,创建路径path1, //2,创建视图view //3,创建关键帧动画animati...

网友评论

    本文标题:iOS创建撒花动画

    本文链接:https://www.haomeiwen.com/subject/sfljattx.html