说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

iOS UIView动画实践(一):揭开Animation的神秘面纱

HTML文档下载 WORD文档下载 PDF文档下载
无论什么事物,长得好看总会更吸引目光,App同样也不例外,一款面相不错的App就算功能已经被轮子千百遍,依然会有人买账。本文是UIView Animation的第一篇,从极简的概念开始,为大家揭开Animation的神秘面纱。
2015-06-28-uiview-first-animation

前言

在一个看脸的社会中,不论什么事物,长得好看总是能多吸引一些目光。App同样不例外,一款面相不错的App就算功能已经被轮子千百遍,依然会有人买账,理由就是看得顺眼,于是平面设计人员越来越被重视。白驹过隙,斗转星移,人们已然不满足于静态的美感,于是动态的用户体验应运而生,平面设计人员捉襟见肘,是我们程序员出马的时候了。

这篇文章是UIView Animation的第一篇,从极简的概念开始,为大家揭开Animation的神秘面纱。我们以一个登录界面为例。美丽的太阳,婀娜的云,还有几个小山包,中间静躺着用户名、密码输入框和登录按钮。搁以前,这个界面许是会亮瞎眼现如今尼玛狗都嫌。所以我们的目标是赋予这个界面生命力。


注意:本文章基于Swift 2.0和Xcode 7 Beta 2编写。登录界面中的所有元素都已经连接到了代码中(outlet),在这个示例中我们先不使用Auto Layout和SizeClasses。

会动的输入框

我们的第一个场景应该是这样。用户打开App,启动画面过后显示登录界面,此时屏幕上还没有用户名和密码的输入框,下一秒他们从屏幕左侧飘然而至。

首先

我们需要在登录界面还没有展现给用户的时候把用户名和密码的输入框移至屏幕外面。打开ViewController.swift,在viewWillAppear()方法中添加以下代码:

self.username.center.x -= self.view.bounds.widthself.password.center.x -= self.view.bounds.width

这两行代码使用户名、密码输入框移出屏幕外,这里可以使用简单暴力的方式,直接让centerx减去屏幕宽度。

输入框移出屏幕

然后

我们在viewDidAppear()方法中添加以下代码:

UIView.animateWithDuration(0.5, animations: {    self.username.center.x += self.view.bounds.width    self.password.center.x += self.view.bounds.width})

animationWithDuration(_:animations:)UIView的类方法,从方法名就可以看出,该方法可使UIView动起来。它有两个参数:

  • duration:动画的持续时间。
  • animation:动画闭包,在这个闭包中你可以改变UIView的各种动画属性。

因为该方法是一个类方法,所以在闭包中你可以同时改变多个views的动画属性。所以在上述代码中,同时改变了用户名和密码输入框的位置。编译运行,我们可以看到如下效果:

                                       

但是由于两个输入框是同时从屏幕外滑入,略显呆板,所以我们用另一个方法再来润色一下。

那些年,Java程序员用过的开发工具 Java内存模型的历史变迁 Java 8与Apache Ignite Java开发与技术挑战——关于技术的技术思考 专访唯品会架构师肖桦:做编码的架构师 越来越“简单”的Java 我的Java!越过山丘 专访沙梓社:做个“Think Different”的技术牛人 基于ES6,使用React、Webpack、Babel构建模块化JavaScript应用 财税街创始人石克清:创业须空杯心态+有效社交 自我知识管理:连贯性就是生产率 玩转Google I/O 2015:Android M、IoT、Glass 2.0、VR、ATAP ARC中Retain Cycle揭秘 失控与逆转!企业移动化2.0时代下如何求变? 玩转物联网之MQTT 专访都灵创客教育奚炎:被忽视的Maker教育 13岁iOS开发者:Swift开发Sprite Kit游戏实践 专访豌豆荚「自动装」开发团队:无需Root即可批量点击「下一步」 iOS项目的持续集成与管理 《近匠》谛听科技,探索智慧家庭的智能网关 【简讯】Python 3.5.0b1发布 《算法的乐趣》作者王晓华访谈:多看、多做、多想是秘诀 专访李祎:Java在Testin的技术应用 React首部经典图书推荐:全程经典实例,360度剖析React.js 再做一个Android!Google发布第二代VR眼镜Cardboard Go语言开发常见陷阱,你遇到过几个? 奏响年度最强音 第七届中国云计算大会日程全公布(表) 【CTO讲堂】请在还年轻的时候,尽量多踩些坑 以细分使用场景为突破点 探究墨迹天气的体验创新 熟练成就创造——MathWorks全球副总裁Richard Rovner、产品市场经理赵志宏专访 Objective-C编码规范:26个方面解决iOS开发问题 实习要搞数据库开发,可我只学过foxpro2.5~~~,现在想用vfp,能不能推荐一本好的,谢谢 在DELPHI中如何控制DOS命令语句的运行顺序? 请问:网站发手机短信息的技术解决方案,请详细说明一下! 为什么JBuilder5中没有Component Palette ,即能够产生各种控件的页.象jb3那样.有swing,swingcontainers,dataexpress..... 为什么我不能给分? 如何实现网络定时传输文件??? 完了,完了,我彻底完蛋了! 我从网上下载的*.bin文件的电影怎么播放? 考水平考试的朋友请过来看。 刚收到111222的信~~~难过~~~我会想念他的~~~你们是不是也会~~~ 我的硬盘为何这样!help!! 考水平考试的朋友过来看看 我要毕业啊 ===============想知道111222去向的朋友,看这(独家披漏)===================== 以下SQL语言如何写? 111222走了~~送分~~~心里不好受~~~ 111222真的走了~~~~~~~~~~~ JBuilder中用MYSQL数据库,用中文进行条件查询时,查不出任和数据? ASM 菜鸟问题,请大家帮忙!谢谢 解释一下好了吗? ============答对我的问题者,将可获得111222的签名照片!!!!!!!!=========== 关于图片的上传 ======== 绝对好消息,activereport2.0已经release 了,cracker们出动啊~~~~~加油 ============= 关于什么才是真正的系统分析和系统分析员的讨论!——欢迎大家参加,进行善意地讨论!^&^ 今晚的球赛什么时候开始啊? 哪里有关于水平考试(高程)的模拟题的啊??? 为什麽还是不能显示中文呢? 怎样获取WIN2000的密码 在父窗体怎样画jpg格式的背景图? 如何注册MSComm控件????????? 如何解决这个问题啊?重赏啊!!!! 公告: 从现在开始封shines 111222 :)流芳斑主,结贴的工作要开始了,会很累啊!我代表大家先谢谢你了! 怎样改变MSHflexgrid中每条记录的背景颜色。急急急急急急急 各位,能不能给我讲一下“句柄”是怎么一回事? 唉,心情不爽 关于C++语法的问题? 灌水-----大学时的恶作剧(转载) "setdibs()"是什么来着,请指教,谢谢! 写注释不宜过头 这段代码错在哪里? 请大家预测一下比分(参与者都有分)开赛后就不算了,还有半个小时,赶紧着 写网络电话程序的讨论 最后一帖,贴完睡觉----如何在电梯里捣乱 怎样定制一个在程序中重用的组件?只能通过包方式吗? 寻寻觅觅 汉英计算机科技文章 互译!!有劳各位朋友费心帮忙找找 我靠!真TMD不爽,这个时候准老婆的老妈进了医院! 怎样调用*.db格式文件 谁知道哪儿有英汉互译,急急急急!!!! ISO 9001认证 VS CMM2 谁知道哪儿有《神秘的人月》下载? 45%x=25%(x+16) 这个方程怎么解, 求方程如何解:x/14%+(5-x)/12%=40 求方程|x|+2|y|=0的解 45-x=x*6这道方程怎么解 20-x×12%=5这题解方程怎么做?请告诉方法还有过程 方程(x-1)2-(x+1)(x-1)+3(x+1)=0的解是 (36+x)/(6+x)=4方程式怎样解? 解释一下线性回归方程 顺便求一下y关于x的线性回归方程 要过程x: 3 4 5 6y: 2.5 3 4 4.5 2个x的方程怎解解答 36+X分之36X=24方程怎么解 (16+x)/(36+x)=9/19 (x+1)^2+x-2=1这道方程怎么解啊!其实原题目是:x+1 1----- + ----- =1x-2 x+1 谁知 x/36+x/24=16 这个方程如何解, 16+x=9/19(x+36) X*X=108+3*X怎么解呀X*X=108+3*X, (8-X)^2-X^2=36这个方程能解吗?怎么拆括号?得什么? 16+x=5/9*(36+x)怎么解 X+10+X+8=108怎么解 34+x-8=36-x方程怎么解 x-0.36=16解方程一分钟 (108-x)/x=12.5% 怎么解 这个方程怎么解:36/X=48/(X+8)? X-0.36=16,用解方程做错了错了,是X-0.36X=16 9(X-3.8)=108怎么解? 方程2x+4=36的解与y=+x-6的解相同,y应该是多少呢?要全面的,明天就交了, 100×(1-x)的2次方=81 求x的解 7.6x-3.2=4x-1.76 方程解 (x-18)÷2=x÷4这道方程怎么做? 方程x/2+m/3=x-4与方程1/2(x-16)=-6的解相同,则m的值是 方程x÷4-x÷5=81怎么解 25%+X=75 方程 方程2/x+3/m=x—4与方程2/1(x—16)=-6的解相同,求m的值 (2-3/4)x =4/5 方程19-120x=7怎么解注意, 若方程2分之x+3分之m=x-4与方程2分之一(x-16)=-6的解相同,求m的值 用方程解答4(x+1)=3(x+2) 19-120%x=7这条方程怎么解 速求? 若方程x/2+m/3=x-4与方程1/2(x-16)=-6的解相同,求m的值. (x+4)÷3=2.5 判断:X=26是方程X-12+6=20是方程的解 方程2分之x+3分之m=x-4与方程2分之1(x-16)=-6的解相同求m的值本人不太容易懂 4×(10X+7)=700000+X 这个方程怎么解啊?一步也别省略! x-1/4=36.这道方程怎么做 X-0.8X+6=16这道方程怎样解 4.8x-x=0.76方程式怎么解? x+35-x=(20+x)×2方程怎么解?20+35-x=(20+x)×2怎么算啊? 方程:x+0.8x=2.16怎么解 8x-108=28 解方程式 x/3.5+(x-35)/3.5=x/2 这个方程怎么解 方程8x+16=16的解是x=0 8x-108=208 解方程式 解方程式X-2=X÷3+12 x平方-8x=16 这个方程怎么解? 方程x(x-2)+x-2=0的解是? 2.8+x=10.35 解这个方程 (16+X)/(36+X)=6/11 求解方程的过程跪求解方程的过程 方程x^2-|x|-1=0的解是? χ²+12χ+36=0请问怎么解这个方程.非常谢谢.在线等谢谢各位了!能详细点写出步骤吗,谢谢! 求一道方程的解,(200+x)×36%=40+x 求方程x^2-2^x=0的解?谁会?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn