ios transitionwithview 怎么结束动画

 我来答
匿名用户
2017-03-21
展开全部
  这一篇我们来说说UIKit中的动画API,期中包括:   UIView.UIView.animateWithDuration   UIView.transitionWithView   UIView.animateKeyframesWithDuration   UIView.addKeyframeWithRelativeStartTime   今天的故事就将围绕这些API,阐述他的前世今生。   UIKit动画API使用起来十分简单与方便,他避免了Core Animation的复杂性,虽然事实上UIKit动画API的底层使用的也是Core Animation。   来看第一个,UIView.UIView.animateWithDuration   先来看一下函数原型:   class func animateWithDuration(duration: NSTimeInterval, delay: NSTimeInterval, usingSpringWithDamping dampingRatio: CGFloat, initialSpringVelocity velocity: CGFloat, options: UIViewAnimationOptions, animations: () - Void, completion: ((Bool) - Void)?)   一共七个参数:   表示动画执行时间。   delay   动画延迟时间。   usingSpringWithDamping   表示弹性属性。   initialSpringVelocity   初速度。   options   可选项,一些可选的动画效果,包括重复等。   animations   表示执行的动画内容,包括透明度的渐变,移动,缩放。   completion   表示执行完动画后执行的内容。   关于这些参数,选一个列子,尝试不同的参数,这样可以更好的理解每个参数的意义。   好丑的动画   self.animationView2.alpha = 0   self.animationView3.alpha = 0   UIView.animateWithDuration(5, delay: 0.5, usingSpringWithDamping: 0.5, initialSpringVelocity: 0, options: .Repeat, animations: { () - Void in   self.animationView.center.y += 100   }) { (Bool) - Void in   println(finish)   }   UIView.animateWithDuration(5, delay: 0.5, usingSpringWithDamping: 0.5, initialSpringVelocity: 0, options: .Repeat, animations: { () - Void in   self.animationView2.alpha = 1   }) { (Bool) - Void in   println(finish)   }   UIView.animateWithDuration(5, delay: 0.5, usingSpringWithDamping: 0.5, initialSpringVelocity: 0, options: .Repeat, animations: { () - Void in   self.animationView3.center.y -= 100   self.animationView3.alpha = 1   }) { (Bool) - Void in   println(finish)   }   代码就不逐行解释,三个UIView.animateWithDuration分别操作三个方块。第一个方块是一个移动动画,第二个方块是一个透明度渐变动画,第三个方块是移动加透明度渐变的组合动画,可能看的不是很清楚。不得不说这个动画真的很丑~~~   UIView.UIView.animateWithDuration这个API说穿了就是逐渐改变UIView的某项属性,这些属性包括:位置,大小,透明度,颜色等等。   再来看一下UIView.transitionWithView,这是一个过度动画,主要用于UIView进入或者离开视图。   先看一下这一个动画效果吧:   9.gif   其中banner右移消失的动画用的就是上面提到的UIView.UIView.animateWithDuration,而进入的动画用的就是现在要讲的UIView.transitionWithView。很像一页书页翻下来的感觉哈。   我们来看一下函数原型   class func transitionWithView(view: UIView, duration: NSTimeInterval, options: UIViewAnimationOptions, animations: () - Void, completion: ((Bool) - Void)?)   一共五个参数:   view   这当然就是指定要进行动画的对象了。   和上面一样这个参数指定动画时间长短。   options   这是一个可选参数,虽然是可选的但是不填这个API就没意义了,因为UIView如何进入视图就是由这个参数决定。到底是像书页一样翻进去,还是像百叶窗一样转动就是由这个参数决定,具体有哪些可以选择,点进去看看就知道了。   animations   这个选项你可以将它理解为在动画结束后UIView的形态。   completion   动画结束后运行的代码。   代码大概长这样   UIView.transitionWithView(status, duration: 0.33, options:   .CurveEaseOut .TransitionCurlDown, animations: {   self.yourView.hidden = false   }, completion:nil   })   这一部分代码已上传Github,Github地址在文章的最后面。   我相信看看源代码,大家都能明白的。   这里再给大家看一个动画,也是用前面提到过的函数写的:   尼玛~这显示效果太差了吧,不知道你们那里看到的是什么样的   仿3D效果,代码也在上传的那个Demo中,大家自己看啦~   到最后一个函数啦啦,UIView.animateKeyframesWithDuration,先来看一下动画效果吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式