UIView的动画 Animation

我们可以运用UIView的动画(Animation)来实现一些UI的动画效果。这对于用户体验和引导用户使用有很好的作用。

基本的动画变化:

1.位移:通过改变view.center的值来实现

 self.blueSquare.center.x = self.view.bounds.width - self.blueSquare.center.x

2.放大缩小:通过view.transform

self.blueSquare.transform = CGAffineTransformMakeScale(2.0,2.0)

3.旋转:通过view.transform

self.wheel.transform = CGAffineTransformRotate(self.wheel.transform,CGFloat(M_PI))

4.透明度:通过view.alpha

self.blueSquare.alpha = 0.2

5.颜色:通过view.backgroundcolor


要让动画生效,需要通过UIView.animateWithDuration 系列函数实现

UIView.animateWithDuration(<#T##duration: NSTimeInterval##NSTimeInterval#>, animations: <#T##() -> Void#>)

这是该函数的基本形态,duration表示动画执行的时间,animations里就是需要播放的动画。

熟悉Cocos2d的应该能很快理解,并使用这些函数。因为和Cocos2d的动画及其相似。

当然UIView.animateWithDuration函数还有其他形态,比如,我们可以传入一个delay,让动画延时执行。或者,传入Options,选择一些动画的参数,比如repeat,reverse,easeInOut,easeIn等等。

UIView.animateWithDuration(1, delay: 1, options: [], animations: {

           self.greenSquare.center.x =self.view.bounds.width -self.greenSquare.center.x

           self.greenSquare.center.y  =self.view.bounds.height -self.greenSquare.center.y

        }, completion: nil)

iOS7.0以后还引入了spring(弹簧效果),需要传人damping,弹簧的阻尼和velocity,初识速度。

UIView.animateWithDuration(5, delay: 0, usingSpringWithDamping: 0.1, initialSpringVelocity: 1, options: [], animations: {

           self.greenSquare.center.x =self.view.bounds.width -self.greenSquare.center.x

            }, completion: nil)



总结:使用这些动画效果的组合几乎可以完成大部分需求,如果是简单少量的动画效果完全可以用这些接口实现。但是值得注意的是,这样的效率并不是最好的。如果想即使用大量的动画效果,又想追求效率的话可以使用Facebook pop这个开源库或者Core Animation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值