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 Animation。Spring 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 里面剩下的功能,阿达会在入学考之后再继续跟大家分享,后面还有很多关于 资料库,搜寻列,云端,社群分享。。。。更多功能敬请期待。十篇技术文一路走来感觉很累,也学习了很多,感谢小伙伴们的各种宝贵意见,更开心的是有小伙伴们愿意跟着阿达一起实作,让我们用一行一行的代码,一步一步的实现我们的梦想! 我是阿达,我们一定会再见!
- swift实作app 交流分項十(動畫特效)
- swift实作app 交流分項一(tableview)
- swift实作app 交流分項三(畫面切換)
- swift实作app 交流分項四(物件導向 OOP)
- swift实作app 交流分享五(資料傳遞)
- swift实作app 交流分享六(細節修改)
- swift实作app 交流分享七(修改導覽列)
- swift实作app 交流分享八(self sizing cells)
- swift实作app 交流分享九(toolbar)
- swift实作app 交流分項二(刪除表格攔位)
- swift开发者交流群
- 湖南长沙IOS(xcode swift) 开发交流群
- iOS&&Swift入门(二)App图标
- app 主题切换库(swift)
- swiftshare.cn swift开发交流网站
- 翻译SSD论文(Single Shot MultiBox Detector),仅作交流~
- My First Swift APP
- swift App版本更新
- Android中间向两端,两端向中间并发前进的进度条,Android自定义ProgressBar进度条
- 国民CP:艺术收藏品与P2P配
- Delta extraction for 0FI_GL_04 for every 30 minutes
- Android自动化测试(UiAutomator)简要介绍
- MVC快速入门
- swift实作app 交流分項十(動畫特效)
- mysql行转列(拆分字符串场景)
- 邓白氏编码官方查询地址
- 事务总结
- nodejs初学-----helloworld
- OCP-1Z0-051-2015-27题
- 去除广告插件多点(a.banner.doubleClick)
- Windows Service System.Configuration.ConfigurationManager 无法获取appSettings值
- iOS开发——post异步网络请求封装