UIView动画

1、淡入效果

// MARK: - UIView动画-淡入
    @IBAction func simpleAnimationFadeIn()
    {
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(2.0)//设置动画时间
        testImageView.alpha = 0.0
        UIView.commitAnimations()

//        //通过闭包实现 UIView淡入
//        UIView.animateWithDuration(0.3, animations: { () -> Void in
//            self.testImageView.alpha = 0.0
//        })
    }

2、淡出效果

// MARK: - UIView动画-淡出
    @IBAction func simpleAnimationFadeOut()
    {
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(2.0)//设置动画时间
        testImageView.alpha = 1.0
        UIView.commitAnimations()
    }

3、移动效果

// MARK: - UIView动画-移动
    @IBAction func simpleAnimationMoveCenter()
    {
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(2.0)//设置动画时间
        testImageView.center = CGPointMake(300, 300)
        UIView.setAnimationCurve(UIViewAnimationCurve.EaseOut)//设置动画相对速度
        UIView.commitAnimations()
    }

EaseInOut:动画开始缓慢,中间加快,最后又变为缓慢;

EaseIn:动画由缓慢到加快;

EaseOut:动画由快到缓慢;

Linear:动作从开始至终匀速。

4、大小调整效果

// MARK: - UIView动画-大小调整
    @IBAction func simpleAnimationFrame()
    {
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(2.0)//设置动画时间
        testImageView.frame = CGRectMake(100, 165, 60, 60)
        UIView.commitAnimations()
    }

5、两个UIView对象之间的切换

    // MARK: - UIView动画-过度动画
    var redView:UIView?
    var blueView:UIView?

//    enum UIViewAnimationTransition : Int {
//
//        case None
//        case FlipFromLeft
//        case FlipFromRight
//        case CurlUp
//        case CurlDown
//    }

首先添加两个过度动画

//过度动画 添加两个视图
        redView = UIView(frame: CGRectMake(200, 70, 120, 400))
        redView?.backgroundColor = UIColor.redColor()
        self.view.insertSubview(redView!, atIndex: 0)

        blueView = UIView(frame: CGRectMake(200, 70, 120, 400))
        blueView?.backgroundColor = UIColor.blueColor()
        self.view.insertSubview(blueView!, atIndex: 1)

1)上翻页面切换

//上翻页
    @IBAction func excessiveAnimationRed()
    {
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(1.0)//设置动画时间
        UIView.setAnimationTransition(UIViewAnimationTransition.CurlUp, forView: self.view, cache: true)
        self.view.exchangeSubviewAtIndex(1, withSubviewAtIndex: 0)
        UIView.commitAnimations()
    }

2)下翻页面切换

//下翻页
    @IBAction func excessiveAnimationBlue()
    {
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(1.0)//设置动画时间
        UIView.setAnimationTransition(UIViewAnimationTransition.CurlDown, forView: self.view, cache: true)
        self.view.exchangeSubviewAtIndex(0, withSubviewAtIndex: 1)
        UIView.commitAnimations()
    }

6、翻转效果

 // MARK: - UIView动画-翻转
    @IBAction func flipAnimation()
    {
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(1.0)//设置动画时间
        UIView.setAnimationTransition(UIViewAnimationTransition.FlipFromLeft, forView: testImageView, cache: true)
//        UIView.setAnimationTransition(UIViewAnimationTransition.FlipFromRight, forView: testImageView, cache: true)
        UIView.commitAnimations()
    }

7、push和揭开动画效果

    //CATransition动画-揭开(Push动画)
    @IBAction func caAnimationChage1()
    {
        let transition = CATransition()
        transition.duration = 1.0
        transition.type = kCATransitionPush //推送类型
        transition.subtype = kCATransitionFromLeft//从左侧
        self.view.exchangeSubviewAtIndex(1, withSubviewAtIndex: 0)
        self.view.layer.addAnimation(transition, forKey: nil)

    }

    //CATransition动画-推出
    @IBAction func caAnimationChage2()
    {
        let transition = CATransition()
        transition.duration = 1.0
        transition.type = kCATransitionMoveIn
        transition.subtype = kCATransitionFromTop
        self.view.exchangeSubviewAtIndex(0, withSubviewAtIndex: 1)
        self.view.layer.addAnimation(transition, forKey: nil)
    }
    // MARK: - CATransition动画

//    /* 动画样式 */
//    let kCATransitionFade: NSString!    //翻页
//    let kCATransitionMoveIn: NSString!  //弹出
//    let kCATransitionPush: NSString!    //推出
//    let kCATransitionReveal: NSString!  //移出
//
//    /* 动画执行的方向 */
//    let kCATransitionFromRight: NSString!   //右侧
//    let kCATransitionFromLeft: NSString!    //做成
//    let kCATransitionFromTop: NSString!     //上部
//    let kCATransitionFromBottom: NSString!  //底部

    /* 非公开动画效果 */
//    "cube"          //立方体
//    "suckEffect"    //吸收
//    "oglFlip"       //翻转
//    "rippleEffect"  //波纹
//    "pageCurl"      //卷页
//    "cameralrisHollowOpen"          //镜头开
//    "cameralrisHollowClose"          //镜头关

8、平移动画效果

//CATransition动画-平移
    @IBAction func caTranatate()
    {
        //每次都是从前前位置平移
        self.testImageView.transform=CGAffineTransformTranslate(self.testImageView.transform, -1.9, -1.9)//正负 代表方向

        //每次都从最开始的位置计算平移
//        self.testImageView.transform=CGAffineTransformMakeTranslation(1.2, 1.2)
    }

9、旋转效果

//CATransition动画-旋转
    @IBAction func caRotate()
    {
        //连续旋转
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(2.0)//设置动画时间
        self.testImageView.transform=CGAffineTransformRotate(self.testImageView.transform, CGFloat(-M_PI/2))
        UIView.commitAnimations()

        //独立旋转,以初始位置旋转
//        self.testImageView.transform=CGAffineTransformMakeRotation(CGFloat(M_PI/6))
    }

10、缩放效果

//CATransition动画-缩放
    @IBAction func caScale()
    {

        //连续缩放
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(2.0)//设置动画时间
        self.testImageView.transform=CGAffineTransformScale(self.testImageView.transform, 1.5, 1.5);//1.0以下缩小,1.0以上放大
        UIView.commitAnimations()

        //独立缩放,以初始位置缩放
//        self.testImageView.transform=CGAffineTransformMakeScale(1.2, 1.2)

    }

11、反转到某个状态

    //CATransition动画-反转到某个状态
    @IBAction func caInvert()
    {
        self.testImageView.transform=CGAffineTransformIdentity;//返回到初始状态

        //连续反转
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(2.0)//设置动画时间
        self.testImageView.transform=CGAffineTransformConcat(self.testImageView.transform,CGAffineTransformInvert(self.testImageView.transform));
        UIView.commitAnimations()

        //独立反转,以初始位置反转
//        self.testImageView.transform=CGAffineTransformInvert(self.testImageView.transform)
    }

12、不透明效果

//CABasicAnimation-不透明度
    @IBAction func cabOpacity()
    {
        let animation = CABasicAnimation(keyPath: "opacity")

        animation.fromValue = 1.0
        animation.toValue = 0.0
        animation.duration = 3.0
        self.testImageView.layer.addAnimation(animation, forKey: "Image-opacity")
        self.testImageView.alpha=0.0;
    }

13、开启 clip subview 属性

//开启 clip subview 属性
    @IBAction func cabExpend()
    {
        //从小到下(如果把Mode 属性改成 Center后,此效果为遮照)
        let animation = CABasicAnimation(keyPath: "bounds.size")
        animation.fromValue = NSValue(CGSize: CGSizeMake(2.0, 2.0))
        animation.toValue = NSValue(CGSize: self.testImageView.frame.size)
        animation.duration = 3.0
        self.testImageView.layer.addAnimation(animation, forKey: "Image-expen")
    }

14、关键针动画

//CAKeyframeAnimation-关键针动画
    @IBAction func cakFly()
    {
        let animation = CAKeyframeAnimation(keyPath: "position")

        //设置5个位置点
        let p1 = CGPointMake(0.0, 0.0)
        let p2 = CGPointMake(320, 0.0)
        let p3 = CGPointMake(0, 460.0)
        let p4 = CGPointMake(320.0, 460.0)
        let p5 = CGPointMake(160.0, 200.0)

        //赋值
        animation.values = [NSValue(CGPoint: p1),NSValue(CGPoint: p2),NSValue(CGPoint: p3),NSValue(CGPoint: p4),NSValue(CGPoint: p5)]

        //每个动作的 时间百分比
        animation.keyTimes = [NSNumber(float: 0.0),NSNumber(float: 0.4),NSNumber(float: 0.6),NSNumber(float: 0.8),NSNumber(float: 1.0)]

        animation.delegate = self
        animation.duration = 5.0

        self.testImageView.layer.addAnimation(animation, forKey: "Image-Fly")
    }

15、动画代理

//动画代理
    override func animationDidStart(anim: CAAnimation)
    {
        //动画开始
    }

   override func animationDidStop(anim: CAAnimation, finished flag: Bool)
    {
        //动画结束
    }
时间: 2024-10-14 04:52:39

UIView动画的相关文章

UIView动画效果

做出UI界面,实现程序功能,是重中之重,但是通过动画提升使用体验,一般人应该不会拒绝吧. 那么问题又来了,怎么做? 一: 稳扎稳打: 一步一步来吧,毕竟,心急吃不了热豆腐. 1.开启一个动画 2,设置该动画的各种属性:动画时长.延时执行.自动返回.动画重复次数.转场动画... 3,设置动画的UI的结束时的状态是什么,UI的最终位置等. 4,提交动画. 大功告成.具体细节如下: //===---开始动画 ---=== [UIView beginAnimations:nil context:nil]

GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法

1.GIF动画 1 // 创建一个显示图片的imageView // viewController创建 2 UIImageView *showGifImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 414, 736)]; 3 [self.view addSubview:showGifImageView]; 4 5 6 //创建一个存储图片的数组 7 NSMutableArray *saveImageViewArray

UIView 动画

 UIView 动画 1.动画的作用 提高用户体验, 合理使用动画 2.动画的分类 a.UIView动画, 基于CALayer动画, 是对CALayer动画的封装 i.属性动画 ii.过渡动画 b.CAlayer动画 i.基本动画 ii.关键帧动画 iii.过渡动画 iv.组动画 3.UIView动画是对UIview(或子类)做的动画 a.属性动画和过渡动画都分了两种写法(动画块, block) b.属性动画和过渡动画可以同时执行 4.什么是CALayer? 用于控制渲染和展示内容 UIView

iOS开发——动画编程OC篇&(六)UIView动画

UIView动画 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和[UIView commitAnimations]之间 常见方法解析: + (void)setAnimationDelegate:(id)d

定时器与 UIView 动画结合的雪花降落的效果

1 #import "HUAppDelegate.h" 2 3 @implementation HUAppDelegate 4 5 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 6 { 7 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScr

iOS动画1 — UIView动画

iOS动画1 — UIView动画 iOS动画基础是Core Animation核心动画.Core Animation是iOS平台上负责图形渲染与动画的基础设施.由于核心动画的实现比较复杂,苹果提供了实现简单动画的接口—UIView动画.UIView动画封装在UIView的Category中,主要实现一些简单和常用的动画.UIView动画是对核心动画进行了一层封装,所以最终动画还是通过Core Animation的接口实现. 主要的动画效果都可以通过UIView动画和Core Animation

ios之UIview动画

一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和[UIView commitAnimations]之间 常见方法解析: + (void)setAnimationDelegate:(id)delegate  

iOS核心动画以及UIView动画的介绍

我们看到很多App带有绚丽狂拽的特效,别出心裁的控件设计,很大程度上提高了用户体验,在增加了实用性的同时,也赋予了app无限的生命力.这些华丽的效果很多都是基于iOS的核心动画原理实现的,本文介绍一些iOS开发中最基本的动画效果实现,掌握了基本属性,才可以绘制出更华丽的效果. 一.概念扩充  1.核心动画: Core Animation,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍. Core Animation可以用在Mac OS X和iOS平台.在iO

【iOS开发】---- UIView动画

iOS 动画UIView动画 原文:http://www.cocoachina.com/bbs/read.php?tid=110168 1.概述 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码包装到一个代码块中. 2.UIView动画具体创建方法 - (void)bu