美文网首页
iOS View Animations and Layer An

iOS View Animations and Layer An

作者: Kevin_Shuai | 来源:发表于2015-11-23 16:40 被阅读0次
一. View Animations 一些属性介绍
  UIView.animateWithDuration(0.5, delay: 0.3, options: [], animations: {
      //code 
      username.center.x += self.view.bounds.width                             
}, completion:nil)  在//code 加你想要怎么移动  上面例子可以使username.center.x 向右移动
  • duration: 动画运行时间
  • delay: 在开始动画之前延迟的时间
  • options: 一个集合定义动画 是一个Struct
    UIViewAnimationOptions 继承了 OptionSetType
    .Repeat: 让动画一直循环
    .Autoreverse: 让动画原路返回 和.Repeat 一直可以实现反复播放动画如下面这样
    username.center.x -= view.bounds.width
    UIView.animateWithDuration(0.5, delay: 0.3, options: [.Repeat, .Autoreverse], animations: {
    username.center.x += self.view.bounds.width
    }, completion:nil)
    .Linear: 整个动画过程中平顺没有加速
    .CurveEaseOut:整个动画过程在最后减速
    .CurveEaseIn:整个动画过程在开始先减速
    .CurveEaseInOut: 整个动画过程在开始和结束的时候减速 这也是默认的属性
二. Layer Animations

layer animations 比 View Animations 有更多的动画属性 更加灵活的控制动画

     let flyRight = CABasicAnimation(keyPath: "position.x")
     flyRight.fromValue = -view.bounds.size.width/2
     flyRight.toValue = view.bounds.size.width/2
     flyRight.duration = 0.5                                                          
     backgroundColor.autoreverses = true
     backgroundColor.repeatCount = 10
     username.addAnimation(flyRight, forKey:nil) 

这是简单的Layer Animations 和 UIView Animations 对比 实现的效果和上面的UIViewAnimation 一样 但是Layer Animation 的属性更多 并且可以被复用 下面介绍layer animation 常用属性

  • beginTime
    layer animation 的beginTime 这个属性是动画开始的绝对时间 下面代码可以让动画延迟0.3秒开始
    flyRight.beginTime = CACurrentMediaTime() + 0.3
  • fillMode
    KCAFillModeRemoved 这是默认属性 动画结束后layer恢复之前的状态
    KCAFillModeBackwards 动画开始之前先初始动画 结束之后恢复之前状态
    KCAFillModeForwards 动画结束后变成动画之后的状态
    KCAFillModeBoth 是 KCAFillModeForwards 和 KCAFillModeBackwards的 合并状态
    同时必须设置
    removedOnCompletion = false 不然动画一完成就会消失 结合 fillMode 可以保持动画结束之后不消失

相关文章

网友评论

      本文标题:iOS View Animations and Layer An

      本文链接:https://www.haomeiwen.com/subject/dgrlhttx.html