雪花效果实现

利用定时器产生雪花


#define FPS 30.0

#define MAX_SIZE 10

#define MAX_DURATION 10



- (void)viewDidLoad

{

    [superviewDidLoad];

    [NSTimerscheduledTimerWithTimeInterval:1/FPStarget:selfselector:@selector(animate:)userInfo:nilrepeats:YES];

   self.count =0;

}


-(void)animate:(NSTimer *)timer{

    //1.创建一个雪花

    UIImageView *snow = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"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.viewaddSubview:snow];

    

    //2.创建动画

    [UIViewanimateWithDuration:arc4random()%MAX_DURATION+2delay:0options:UIViewAnimationOptionCurveEaseInanimations:^{

        //3.设置动画结束时雪花的位置信息

       int offset =arc4random()%100-50;

        snow.center =CGPointMake(snow.center.x+offset, viewHeight-30);

    }completion:^(BOOL finished) {

        //落地后开始融雪

        [UIViewanimateWithDuration:arc4random()%MAX_DURATIONdelay:0options:UIViewAnimationOptionCurveEaseInanimations:^{

            snow.alpha =0;

        }completion:^(BOOL finished) {

            //融雪动画结束后,移除imageView

            [snowremoveFromSuperview];

        }];

    }];

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值