學習練習--IOS雪花飄落的實現方法

來源:互聯網
上載者:User

學習練習--IOS雪花飄落的實現方法

方法一:利用NSMutableArray來實現

NSMutable *array;全域變數,在.m檔案中用定時器調用

-(void)down{    static int jianGe = 0;    jianGe++;    if (jianGe > 2) {        jianGe = 0;        [self snowState];    }    [self snowDown];}-(void)snowState{    for (int i  = 0; i < [array count]; i++) {        MyImageView *img = [array objectAtIndex:i];        if (img.tag == 0) {            img.tag = 1;            [self.view addSubview:img];            break;//提取雪花單片        }            }}-(void)snowDown{    for (int i = 0; i < [array count]; i++) {        MyImageView *img = [array objectAtIndex:i];        if (img.tag == 1) {            img.center = CGPointMake(img.center.x, img.center.y+10);            if (img.center.y > 480+25) {                img.tag = 0;                img.center = CGPointMake(arc4random()%370 - 50, -50);            }        }    }}

 

方法二:利用幀動畫

用定時器調用

 

//ViewController.m-(void)snowDown{//動畫效果    UIImageView *iv = [[UIImageView alloc]init];    int a = arc4random()%51;//雪花大小隨機(0~50)    iv.frame = CGRectMake(arc4random()%370 - 50, -50, a, a);    iv.image = [UIImage imageNamed:@"flake"];    [self.view addSubview:iv];        [UIView beginAnimations:nil context:(__bridge void *)(iv)];    [UIView setAnimationDuration:5];    [UIView setAnimationDelegate:self];    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];    iv.frame = CGRectMake(arc4random()%370 - 50, 440, a, a);    [UIView commitAnimations];}-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context//到底部消除{    UIImageView *image = (__bridge UIImageView *)context;    [image removeFromSuperview];}

 

幀動畫比用NSMutableArray要簡潔,易懂

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.