• IOS 下雪动画


    #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.
        _imagesArray = [[NSMutableArray alloc] init];
        for (int i = 0; i < 20; ++ i) {
            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];
            [_imagesArray addObject:imageView];
        }
        [NSTimer scheduledTimerWithTimeInterval:.3 target:self selector:@selector(makeSnow) userInfo:nil repeats:YES];
    }
    
    static int i = 0;
    - (void)makeSnow
    {
        i = i + 1;
        if ([_imagesArray count] > 0) {
            UIImageView *imageView = [_imagesArray objectAtIndex:0];
            imageView.tag = i;
            [_imagesArray removeObjectAtIndex:0];
            [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)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
    {
        UIImageView *imageView = (UIImageView *)[self.view viewWithTag:[animationID intValue]];
        float x = IMAGE_WIDTH;
        imageView.frame = CGRectMake(IMAGE_X, -30, x, x);
        [_imagesArray addObject:imageView];
    }

    // 来自Code4App上的一个Demo

  • 相关阅读:
    java-正则表达式6
    java-正则表达式5
    java-正则表达式4
    java-正则表达式3
    java-正则表达式2
    12.5
    JAVA GUI随笔
    JAVA个人知识总结
    UML关系图
    JAVA中的聚集和组合的区别和联系
  • 原文地址:https://www.cnblogs.com/joesen/p/3586624.html
Copyright © 2020-2023  润新知