swift实作app 交流分項十(動畫特效)

来源:互联网 发布:房地产大数据挖掘 编辑:程序博客网 时间:2024/05/21 09:18

一行代码一场梦,大家好我是阿达,今天要讨论的是本 App 里面最狂跩酷炫屌炸天的功能,也就是动画,在 iOS 开发中,想要建立一个成熟的动画,只需要认识一个 UIView 类别方法即可:UIView.animateWithDuration(1.0,animations)就是这么简单的一条程式,加入参数变化之后就可以有各式各样的动画效果了,所以我们今天重点放在 UIAView Animation 现在我们准备帮之前的项目加上一个逐渐放大(dialog view)的特效,这个特效原理状态如下:开始状态:对话视图尺寸为零终止状态:对话视图尺寸正常小伙伴们可能会想说,那我要怎么把它缩小啊? iOS 提供变形的函数,让你可以缩放、旋转、还有移动,这里面我们要做到缩放就是建立一个CGAffineTransformMakeScale 并设定 UIView 的变形属性。首先我们要在ReviewViewController.swift 中加入一个 Outlet 变数:


@IBOutlet weak var dialogVIew: UIView!


现在我们要在 ReviewVIewController.swift  viewDidLoad  中加入下面的程式:

//第一次载入视图的时候,把比例缩小

        dialogVIew.transform = CGAffineTransformMakeScale(0.0, 0.0)


之后我们建立一个 UIView.animationWithDuration方法来使用特效

//动画持续时间 0.7 没有延迟,将视图恢复原来大小

override func viewDidAppear(animated: Bool) {

        UIView.animateWithDuration( 0.7,delay:0.0,options:nil, animations: {

        self.dialogVIew.transform = CGAffineTransformMakeScale(1, 1)

        },completion:nil)

    }



没错 接下来就是 Command + R的时间啦




动画很酷吧!现在我们介绍另外一种 UIView Animation的变化样式,也就是 Spring AnimationSpring  Animation的使用在 iOS7之后的版本都很常见,


接下来我们来试试看向上滑动的特效(Slide Uo Animation),首先我们建立一个仿射变换函数(affine transform function)来建立 slid - up animation:



现在我们再回到 viewDIdLoad当中加入下面一行程式:

//讓視圖從下而上出現

        dialogVIew.transform = CGAffineTransformMakeTranslation(0, 500)




接下来就可以很开心按下 command + R 的来看看成果了




如果小伙伴觉得这样就已经是狂跩酷炫了!那阿达告诉你事情还没完,接下来的绝对让小伙伴感觉狂跩酷炫屌炸天!因为我们要结合两者动画效果!

我们要做的事情很简单的!其实就只是在 viewDidLoad 更新一下:

        //結合兩者特效

        let socale = CGAffineTransformMakeScale(0.0, 0.0)

        let translate = CGAffineTransformMakeTranslation(0, 500)

        dialogVIew.transform = CGAffineTransformConcat(socale, translate)


然后我们再更新一下viewDIdAppear方法:

    //動畫持續時間 0.7 秒 沒有延遲,將視圖恢復原來大小

    override func viewDidAppear(animated: Bool) {

        UIView.animateWithDuration( 0.7,delay:0.0,options:nil, animations: {

            let scale = CGAffineTransformMakeScale(1, 1)

            let translate = CGAffineTransformMakeTranslation(0, 0)

            self.dialogVIew.transform = CGAffineTransformConcat(scale, translate)

        

            

        },completion:nil)



不要犹豫 不要怀疑!command + R 按下去





当我第一次知道,要写  app  的时后,其实我是拒绝的!因为我不能你叫我写,我就写。我总得试一试啊?当App第一次在我手上照我的意思运行的时候。『当』 这感觉~好极了! 我也给小伙伴们分享一下,阿达要让你们知道我写起来是这样,你们写一起来也是这样! 十篇技术文到这篇告一段落,接下来的时间阿达要把心思放在入学考上面,暂时要跟小伙伴们说再见了,App 里面剩下的功能,阿达会在入学考之后再继续跟大家分享,后面还有很多关于 资料库,搜寻列,云端,社群分享。。。。更多功能敬请期待。十篇技术文一路走来感觉很累,也学习了很多,感谢小伙伴们的各种宝贵意见,更开心的是有小伙伴们愿意跟着阿达一起实作,让我们用一行一行的代码,一步一步的实现我们的梦想! 我是阿达,我们一定会再见!





0 0
原创粉丝点击