雪花飘落-动画制作(UIImage+NSTimer定时器)

本文主要使用UIImage和定时器制作一个简单的雪花飘落Demo.


效果:
开始




效果解释:随机生成雪花数目,飘到屏幕底部指定位置,设置时间,底部的雪花“消融”。


源代码:

#define FPS 30.0
#define MAX_SIZE 10
#define MAX_DURATION 10


- (void)viewDidLoad
{
    [super viewDidLoad];
    //启动定时器,创建雪花
    [NSTimer scheduledTimerWithTimeInterval:1/FPS target:self selector:@selector(animate:) userInfo:nil repeats:YES];
}

-(void)animate:(NSTimer *)timer{
    //1.创建一个雪花
    UIImageView *snow = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"snow.png"]];
    int viewWidth = self.view.bounds.size.width;
    int viewHeight = self.view.bounds.size.height;
    CGFloat size = MAX_SIZE+arc4random()%MAX_SIZE;
    snow.frame = CGRectMake(arc4random()%viewWidth, -20, size, size);
    [self.view addSubview:snow];
    //2.创建动画
    [UIView animateWithDuration:arc4random()%MAX_DURATION+2  delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
        //3. 设置动画结束时雪花的位置信息
        int offset = arc4random()%100 - 50;
        snow.center = CGPointMake(snow.center.x+offset, viewHeight-30);
    }completion:^(BOOL finished) {
        //4.落地动画结束时,开始融雪
        [UIView animateWithDuration:arc4random()%MAX_DURATION delay:0 options:UIViewAnimationOptionCurveEaseIn  animations:^{
            snow.alpha = 0;
        } completion:^(BOOL finished) {
            //5.融雪动画结束时,将图片移出父视图
            [snow removeFromSuperview];
        }];
    }];
}

谢谢大家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值