学习练习--IOS雪花飘落的实现方法

方法一:利用NSMutableArray来实现

NSMutable *array;全局变量,在.m文件中用定时器调用

-(void)down{
    static int jianGe = 0;
    jianGe++;
    if (jianGe > 2) {
        jianGe = 0;
        [self snowState];
    }
    [self snowDown];
}

-(void)snowState{
    for (int i  = 0; i < [array count]; i++) {
        MyImageView *img = [array objectAtIndex:i];
        if (img.tag == 0) {
            img.tag = 1;
            [self.view addSubview:img];
            break;//提取雪花单片
        }

    }
}

-(void)snowDown{
    for (int i = 0; i < [array count]; i++) {
        MyImageView *img = [array objectAtIndex:i];
        if (img.tag == 1) {
            img.center = CGPointMake(img.center.x, img.center.y+10);
            if (img.center.y > 480+25) {
                img.tag = 0;
                img.center = CGPointMake(arc4random()%370 - 50, -50);
            }
        }
    }
}

方法二:利用帧动画

用定时器调用

//ViewController.m
-(void)snowDown{//动画效果
    UIImageView *iv = [[UIImageView alloc]init];
    int a = arc4random()%51;//雪花大小随机(0~50)
    iv.frame = CGRectMake(arc4random()%370 - 50, -50, a, a);
    iv.image = [UIImage imageNamed:@"flake"];
    [self.view addSubview:iv];

    [UIView beginAnimations:nil context:(__bridge void *)(iv)];
    [UIView setAnimationDuration:5];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
    iv.frame = CGRectMake(arc4random()%370 - 50, 440, a, a);
    [UIView commitAnimations];
}

-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context//到底部消除
{
    UIImageView *image = (__bridge UIImageView *)context;
    [image removeFromSuperview];
}

帧动画比用NSMutableArray要简洁,易懂

时间: 2024-08-16 18:50:56

学习练习--IOS雪花飘落的实现方法的相关文章

web前端学习笔记---实现雪花飘落的效果

看了javascript网页特效实例大全中的图片飘下的效果实例,觉得值得动手学习下. 就把图片改成雪花图,完成一个雪花飘下的效果. 并且,其中有些内容比较陈旧了,那么就学者改掉吧. 包括: 1.对left和top的操作仅支持IE浏览器,这咋行,必须得支持chrome. 2.控制图片下落的过程还要去检索element,不好吧,那就改成数组维持,直接操作数组中维持的对象,启不更快. 3.向文档中添加元素直接改成通过JS代码创建元素对象的方式. 实现思路: 1.初始化生成10个div,全都采用绝对定位

黑马程序员_学习IOS之字典常用的方法

字典是无序的 数组是有序的.字典分为:可变字典和不可变字典  不可变字典对象 NSDictionary * dict = [[NSDictionary alloc]initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3",@"four",@"4", nil]; //value = ke

学习 About iOS App Programming 第三天

-------State Preservation and Restoration 即使我们的app能支持后台运行,但它也不能一直在后台运行,有一些情况,系统也许会需要终止app,为了释放内存给在前台运行的app.但是用户不关心app是不是被关闭,用户只知道这个app应用就是这个地方暂停了,当再次起来时应该就在上一次退出的地方.这样用户能继续进行他上次没有完成的任务.因此UIKit实现了这种功能. UIKit的状态保存系统提供了一个简单同时比较精准的基础技术对于保存和恢复app viewcont

原生js实现雪花飘落效果

雪花飘落的效果实现步骤:1.使用setInterval定时器每800毫秒创建一个雪花:2.把每一个雪花作为参数传进动态下落的方法中即可. <style> *{padding: 0;margin: 0;} body{ background:#000; width: 100%; height: 100%; overflow:hidden; } </style> <div id="flame"></div> js实现代码: <script

Qt实现桌面动态背景雪花飘落程序

        曾经收到过一份礼物,一个雪花飘落的程序,觉得效果很炫,通过前几篇的学习,我们已经掌握了贴图的一些技巧了,那么现在就可以自己实现了(当然你必须先拥有qt信号与槽的基础知识),这里先看效果,然后再分析如何实现. 效果图:          这个程序实现很久了,也是当初学习qt的时候写的,因为工作的原因,当初的部分设想,并没有全部实现,现在分享,供大家一起学习.         当初的设想:                 1.雪花随机飘落                 2.地面的花

iOS学习之iOS沙盒(sandbox)机制和文件操作复习

1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行.     通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是

IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)

IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSXMLJSONSQLiteCoreData 一.文件操作 1.因为应用是在沙盒(Sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件: * Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 * tmp:存放临时文件,iTunes不会备份和恢复

iOS学习之iOS沙盒(sandbox)机制和文件操作

iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 1.iOS沙盒机制 IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行. 通过这张图只能从表层上理解sandbox是一种安全体系,应

HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)

看到网上很多展示html5雪花飞动的效果,确实非常引人入胜,我相信大家也跟我一样看着心动的同时,也很好奇,想研究下代码如何实现:虽然哦很多地方也能下载这些源码,不过也不知道别人制作此类动画时的思路及难点分析. 我这几天刚好学习了一下,也趁着此刻有时间从需求分析.知识点.程序编写一步步给大家解剖下,要是在各位关公面前耍大刀了,可别见笑哟. 最终效果图如下: 图1 一.需求分析 1.圆形雪花 本示例中雪花形状使用圆形 2.雪花数量固定 根据图1仔细观察白色雪花数量,飘落过程中,整张图的雪花数量应该是