几种常见的动画

本文介绍如何在iOS应用中实现图片旋转、动态放大缩小以及动态雨滴效果,包括旋转图片、动态调整图片大小以及雨滴动画的实现方法。

一、图片的旋转

- (void)rotateImageView:(UIImageView *)iv

{

    [UIView animateWithDuration:.5 delay:0 options:UIViewAnimationOptionCurveLinear

                     animations:^{

                         

                         iv.transform = CGAffineTransformRotate(iv.transform, M_PI / 2);


                     }

                     completion:^(BOOL finished) {

                         if(finished)

                             [self rotateImageView:iv];

                     }];

}

二、图片的动态放大和缩小

- (void)pulseImageView:(UIImageView *)iv

{

    [UIView animateWithDuration:1 delay:0 options:UIViewAnimationCurveEaseOut

                     animations:^{

                         iv.transform = CGAffineTransformScale(iv.transform, 2, 2);

                     }

                     completion:^(BOOL finished) {

                         [UIView animateWithDuration:1 delay:0 options:UIViewAnimationCurveEaseIn

                                          animations:^{

                                              iv.transform = CGAffineTransformScale(iv.transform, .5, .5);

                                          }

                                          completion:^(BOOL finished) {

                                              if(finished)

                                                  [self pulseImageView:iv];

                                          }];

                     }];

}

三、雨滴效果
//添加上面的云朵

- (void)raining

{

    UIImageView *imageView = [[UIImageView allocinitWithImage:[UIImage imageNamed:@"angrycloud"]];

    imageView.center = CGPointMake(160,125);

    [self.backgroundImageView addSubview:imageView];

    [self.backgroundImageView bringSubviewToFront:imageView];

}


- (void)weatherItem:(NSString *)name andLevel:(CGFloat)level

{

    if(self.generator){

        [self.generator invalidate];

        self.generator = nil;

    }

    

    self.generator = [NSTimer scheduledTimerWithTimeInterval:(.1*(1/level)) target:self selector:@selector(addItem:) userInfo:name repeats:YES];

}

//云朵下动态的雨滴

- (void)addItem:(NSTimer *)timer

{

    NSString *image = timer.userInfo;

    

    int x = arc4random()%80;

    int y = arc4random()%100;

    

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:image]];

    imageView.center = CGPointMake(x+120,y+120);

    [self.backgroundImageView addSubview:imageView];

    [self.backgroundImageView sendSubviewToBack:imageView];

    [self tweenLeftImageView:imageView];

}



- (void)tweenLeftImageView:(UIImageView *)iv

{

    CGPoint point = iv.center;

    

    [UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveLinear

                     animations:^{

                         iv.center = CGPointMake(point.x-50,point.y+200);

                         iv.alpha = 0;

                     }

                     completion:^(BOOL finished) {

                         [iv removeFromSuperview];

                     }];

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值