#define SNOW_IMAGENAME @"snow" #define IMAGE_X arc4random()%(int)Main_Screen_Width #define IMAGE_ALPHA ((float)(arc4random()%10))/10 #define IMAGE_WIDTH arc4random()%20 + 10 #define PLUS_HEIGHT Main_Screen_Height/25 #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(makeSnow) userInfo:nil repeats:YES]; } - (void)makeSnow { UIImageView *imageView = [[UIImageView alloc] initWithImage:IMAGENAMED(SNOW_IMAGENAME)]; float x = IMAGE_WIDTH; imageView.frame = CGRectMake(IMAGE_X, -30, x, x); imageView.alpha = IMAGE_ALPHA; [self.view addSubview:imageView]; [self snowFall:imageView]; } - (void)snowFall:(UIImageView *)aImageView { [UIView beginAnimations:[NSString stringWithFormat:@"%i",aImageView.tag] context:nil]; [UIView setAnimationDuration:6]; [UIView setAnimationDelegate:self]; aImageView.frame = CGRectMake(aImageView.frame.origin.x, Main_Screen_Height, aImageView.frame.size.width, aImageView.frame.size.height); NSLog(@"%@",aImageView); [UIView commitAnimations]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end