swift 动画知识回顾与学习

前言
在iOS中动画效果可以给app加分不少,其实实现动画的过程并不复杂,此博文将介绍常用的动画。


目录:

  1. CALayer
  2. Core Animation
  • 基础动画 CABasicAnimation
  • 关键帧动画 CAKeyframeAnimation
  • 动画组 CAAnimationGroup
  • 转场动画 CATransition
  • 弹性动画 CASpringAnimation
  1. UIView动画封装

CALayer

iOS中CALayer的设计主要是了为了内容展示和动画操作,CALayer本身并不包含在UIKit中,它不能响应事件。由于CALayer在设计之初就考虑它的动画操作功能,CALayer很多属性在修改时都能形成动画效果,这种属性称为“隐式动画属性”。但是对于UIView的根图层而言属性的修改并不形成动画效果,因为很多情况下根图层更多的充当容器的做用,如果它的属性变动形成动画效果会直接影响子图层。另外,UIView的根图层创建工作完全由iOS负责完成,无法重新创建,但是可以往根图层中添加子图层或移除子图层。
常用的CALayer属性有:

属性 说明 是否支持隐式动画
anchorPoint 和中心点重合的一个点,默认为(0.5,0.5)
backgroundColor 背景图片
borderColor 边框颜色
borderWidth 边框宽度
bounds 图层大小
cornerRadius 圆角半径
hidden 是否隐藏
mask 图层蒙版
maskToBounds 子图层是否剪切图层边界
opacity 透明度
position 中心点位置
shadowColor 阴影颜色
shadowOffset 阴影偏移量
shadowOpacity 阴影透明度
shadowPath 阴影形状
shadowRadius 阴影模糊半径
transform 图层形变
frame 位置

隐式动画属性的变化默认使用CABasicAnimation动画实现,如修改属性不需要动画,则通过事务关闭隐式动画:

        CATransaction.begin()
        CATransaction.setDisableActions(true)
        rightBtn.layer.position = CGPoint.zero
        CATransaction.commit()

你可能感兴趣的:(swift 动画知识回顾与学习)