利用定时器产生雪花
#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];
}];
}];
}