iOS UIView动画实践(一):揭开Animation的神秘面纱
2015-07-02 17:17
351 查看
http://www.csdn.net/article/2015-07-02/2825115-ios-uiview-animation-1
前言
在一个看脸的社会中,不论什么事物,长得好看总是能多吸引一些目光。App同样不例外,一款面相不错的App就算功能已经被轮子千百遍,依然会有人买账,理由就是看得顺眼,于是平面设计人员越来越被重视。白驹过隙,斗转星移,人们已然不满足于静态的美感,于是动态的用户体验应运而生,平面设计人员捉襟见肘,是我们程序员出马的时候了。这篇文章是UIView Animation的第一篇,从极简的概念开始,为大家揭开Animation的神秘面纱。我们以一个登录界面为例。美丽的太阳,婀娜的云,还有几个小山包,中间静躺着用户名、密码输入框和登录按钮。搁以前,这个界面许是会亮瞎眼现如今尼玛狗都嫌。所以我们的目标是赋予这个界面生命力。
注意:本文章基于Swift 2.0和Xcode 7 Beta 2编写。登录界面中的所有元素都已经连接到了代码中(outlet),在这个示例中我们先不使用Auto Layout和SizeClasses。
会动的输入框
我们的第一个场景应该是这样。用户打开App,启动画面过后显示登录界面,此时屏幕上还没有用户名和密码的输入框,下一秒他们从屏幕左侧飘然而至。首先
我们需要在登录界面还没有展现给用户的时候把用户名和密码的输入框移至屏幕外面。打开ViewController.swift,在
viewWillAppear()方法中添加以下代码:
[cpp] view
plaincopy
self.username.center.x -= self.view.bounds.width
self.password.center.x -= self.view.bounds.width
这两行代码使用户名、密码输入框移出屏幕外,这里可以使用简单暴力的方式,直接让
center的
x减去屏幕宽度。
然后
我们在viewDidAppear()方法中添加以下代码:
[cpp] view
plaincopy
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的动画属性。所以在上述代码中,同时改变了用户名和密码输入框的位置。编译运行,我们可以看到如下效果:
但是由于两个输入框是同时从屏幕外滑入,略显呆板,所以我们用另一个方法再来润色一下。
相关文章推荐
- Number Sequence
- UIActionSheet 修改字体颜色
- 创建UIView对象的两种方法
- UIScrollView新手教程
- MySQL提示:Starting MySQL...The server quit without updating PID&n
- LeetCode-Repeated DNA Sequences -解题报告
- Android UI法宝的设计资源的开发
- @RequestBody与@ResponseBody处理输入参数和输出参数
- TheValgrind Quick Start Guide
- EasyUI 中关于datetimebox赋值问题
- STL学习之deque
- STL学习之deque
- iOS UItextView消除键盘
- EasyUI的treegrid组件动态加载数据问题的解决办法
- error MSB8031: Building an MFC project for a non-Unicode character set is deprecated
- Win10在UEFI启动机制下无法更新升级的解决方法
- iOS UITabbarItem image
- EazyUI布局问题
- monkeyrunner执行脚本提示”Script terminated due to an exception“
- 循环结构中break、continue、return和exit的区别