雪花效果实现

来源:互联网 发布:用友u8数据库修复工具 编辑:程序博客网 时间:2024/06/10 12:39

利用定时器产生雪花


#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
原创粉丝点击