UIImageView动画

 设置动画方法一:简易版本的动画(使用block版本)

//动画需要持续多久  第一个参数 动画持续的时间

    [UIView animateWithDuration:5 animations:^{

        //设置 改变x y坐标,大小(frame),也可以用transform,用形变来添加动画的效果

        view.transform = CGAffineTransformMakeRotation(M_PI);

        view.transform = CGAffineTransformRotate(view.transform,M_PI);

        

        view.transform = CGAffineTransformScale(view.transform, 0.5, 0.5);

        //view.transform = CGAffineTransformMakeScale(0.5, 0.5);只是执行了旋转,但是没有旋转的效果,依然只是执行了缩放,带make的方法不能叠加

    }];

 

设置动画方法二:简易版本的动画(使用block版本)

//第一个参数是动画持续的时间  第二个参数 是动画执行的代码块,第三个参数 动画结束的代码块

    [UIView animateWithDuration:5.0 animations:^{

        label.transform = CGAffineTransformTranslate(label.transform, 100, 0);

        label.transform = CGAffineTransformRotate(label.transform, M_PI);

    } completion:^(BOOL finished) {

        NSLog(@"动画结束了");

        [UIView animateWithDuration:2.0 animations:^{

            label.alpha = 0;//慢慢消失

            //[label removeFromSuperview];直接删除

        }];

    }];

设置动画方法三:(复杂动画)

 //创建一个上下文(其实就是一个开始 跟结束范围)

    //开始设置动画相关属性

    [UIView beginAnimations:nil context:NULL];

    //持续时间

    [UIView setAnimationDuration:5.0];

    

    /*设置加速度变化曲线

     开始慢 结束慢 中间块

     UIViewAnimationCurveEaseInOut  慢快慢

     UIViewAnimationCurveEaseIn     慢=>快

     UIViewAnimationCurveEaseOut    快=>慢

     UIViewAnimationCurveLinear     线性

     */

    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];

    //延迟时间  动画开始时延迟的时间

    [UIView setAnimationDelay:1];

    //设置自动恢复,一般是NO;

    [UIView setAnimatiounRepeatAtoreverses:NO];

    //动画重复次数,-1表示永远重复

    [UIView setAnimationRepeatCount:1];

    //设置动画的最终信息,一定放到最后

    view.transform = CGAffineTransformTranslate(view.transform, 100, 0);

    [UIView setAnimationDelegate:self];

    [UIView setAnimationDidStopSelector:@selector(finish)];

    //提交动画

    [UIView commitAnimations];

 

UIImageView的常用属性和方法

 

  • contentMode属性:图片的填充模式。(继承自UIView)

//充满整个视图

//    UIViewContentModeScaleToFill

//    UIViewContentModeRedraw

//按照最大受限条件

//    UIViewContentModeScaleAspectFit

//按照最大标准缩放

//    UIViewContentModeScaleAspectFill,

 

           

//    UIViewContentModeCenter,          

//    UIViewContentModeTop,

//    UIViewContentModeBottom,

//    UIViewContentModeLeft,

//    UIViewContentModeRight,

//    UIViewContentModeTopLeft,

//    UIViewContentModeTopRight,

//    UIViewContentModeBottomLeft,

//    UIViewContentModeBottomRight,

    imgeView.contentMode = UIViewContentModeScaleToFill;

 

  • clipsToBounds属性:修剪超出边界的部分。(继承自UIView)

   //允许剪切边界

    imgeView.clipsToBounds = YES;

    //设置圆角,将边角剪切成圆角

    imgeView.layer.cornerRadius = 50;

 

UIImageView动画属性

  • animationImages属性:装在用于动画的图像的数组。
  • animationDuration属性:动画播放的持续时间。
  • animationRepeatCount属性:动画的重复次数,0表示循环播放。
    • startAnimating方法:开始播放动画。
    • stopAnimating方法:停止播放动画。
    • isAnimating方法:返回BOOL值表示动画是否正在播放中。

 

例子:鸟飞

- (void)testImageViewAnimate {

    //创建一个数组,加入全部的图片对象

    NSMutableArray *birdArr = [NSMutableArray array];

    for (NSInteger i = 1; i <= 18; i++) {

        NSString *name = [NSString stringWithFormat:@"DOVE%02ld",i];

        UIImage *image = [UIImage imageNamed:name];

        [birdArr addObject:image];

    }

    //创建图片视图

    UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 300, 100, 100)];

    imageView.image = [UIImage imageNamed:@"DOVE01"];

    [self.view addSubview:imageView];

    

    //设置图片动画

    //设置图片动画的数组

    imageView.animationImages = birdArr;

    //设置动画的时间

    imageView.animationDuration = 1.0;

    [imageView startAnimating];

}

 

posted @ 2016-10-12 14:00  姜晓延  阅读(204)  评论(0编辑  收藏  举报