核心动画的简单理解
来源:互联网 发布:新理念外语网络教学app 编辑:程序博客网 时间:2024/05/21 09:58
CoreAnimation (核心动画框架)
- 都是基于CALayer 图层
- UIView 可以跟用户交互
- CALayer 不可以跟用户交互 只能显示内容
- UIView ->rootLayer 发生改变子图层也会发生改变
- CALayer 发生改变 子图层 不会跟随发生改变
- button 不只有一个视图 改变的知识其中一个视图的rootLayer —> 显示 未被裁切的边框
- CALayer 自带动画效果 (当改变他的属性值的时候)——>这种动画效果叫做隐式动画
- 隐式动画的属性
- bounds 边境范围
- position 中心点
- zPosition z轴中心点 类似UIView 中的center
- anchorPoint 锚点 ✮✮✮✮✮ 的、 最小值是0 0 最大值是1 1 默认锚点是与中心点重合的 默认值是0.5 0.5 当视图 改变的时候 是以锚点为基准改变的锚点的值与位置
0,0 = 在图层的左上角0,1 = 在图层的左下角1,0 = 在图层的右上角1,1 = 在图层的右下角
- anchorPointZ Z轴锚点 transform 转换形态 frame NO. Animatable 坐标 hidden 隐藏 doubleSided 图层背面是否显示 geometryFlipped 翻转 颠倒 masksToBounds 裁切边境 contents 内容 opaque 不透明度 allowsEdgeAntialiasing 是否使用 变形后的抗锯齿 backgroundColor 背景颜色 borderWidth 边框宽 borderColor 边框颜色 opacity 不透明度 shadowColor 阴影颜色 shadowOpacity 阴影不透明度 rasterizationScale 防止Retina屏幕像素化 shadowOffset 阴影偏移量 shadowRadius 阴影的半径
- CAAnimation父类 不能直接使用
- CAPropertyAnimation 属性动画 通过属性值的改变 产生动画效果
- CABasicAnimation 基础动画 只能是两个点直接的变化
- CASpringAnimation 弹簧动画
- CAKeyframeAnimation 关键帧动画 可以添加多个点的变化 或者添加路径
- CAAnimationGroup 动画组 可以添加多重动画 达到预期效果
- CATransition 转场动画 任意的视图都可以使用 视图切换的时候 添加效果
- CABasicAnimation 基础动画 只能是两个点直接的变化
- CAPropertyAnimation 属性动画 通过属性值的改变 产生动画效果
旋转动画
1.使用基础动画 其中一个值的变化
2.改变哪一个属性rotation.z
可以通过改变animationWithKeyPath来改变动画的属性:
transform.scale = 比例转换
transform.scale.x
transform.scale.y
transform.rotation.z
opacity = 透明度
zPosition
backgroundColor 背景颜色
cornerRadius 柺角
borderWidth 边框的宽度
bounds
contents 内容
contentsRect
frame
hidden
masksToBounds
position
shadowColor
shadowOffset
shadowOpacity
shadowRadius
CASpringAnimation 弹簧动画
弹簧动画——>(父类)CABasicAnimation ——>只能设置 fromValue toValue byValue
CAAnimation 只是改变图层的动画效果 并没有改变正式的改变 视图、图层 的属性值
- 属性:
- mass 质量——>影响图层运动时的弹簧惯性 质量越大 幅度越大
- stiffness 刚度(劲度/弹性)刚度越大 形变产生的里就越大 运动越快
- damping 阻力 阻力越大 停止越快
- initialVelocity 初始速率,动画视图的初始速度大小 速率为正数时 速度方向与运动方向一致 速率为负数时 速度方向与运动方向相反
- settlingDuration 获得动画完成的预估时间
CAKeyframeAnimation 关键帧动画
两个值发生改变 中间产生的动画效果叫做补间动画 基础动画又叫做不见动画
关键帧动画与 基础动画的区别:
基础动画只能是某个属性的初始值到另一个值 产生的动画效果
关键帧动画 支持多个值(values)或者一个路径(path)
- 属性
- values:值的数组
- path:值得路径
- keyTimes:时间值(0,1)
- timingFunctions:速度控制的数组
- calculationMode:动画样式
- kCAAnimationLinear 自定义控制动画的时间(线性)可以设置keyTimes
- kCAAnimationDiscrete 离散动画 没有任何补间动画 使用keytimes@[@0.3,@0.5,@1.0];
- kCAAnimationPaced 节奏动画 自动计算动画的运动时间
- kCAAnimationCubic 曲线动画 需要设置timingFunctions
- kCAAnimationCubicPaced 节奏曲线动画 自动计算
- ritationMode:旋转的样式
- kCAAnimationRotateAuto 自动旋转
- kCAAnimationRotateAutoReverse 自动翻转
CAAnimationGroup 动画组
- CAAnimationGroup 动画组 可以让一些动画同时去执行
- animations 动画组中唯一的一个属性 ——>动画的数组——>动画组设置的持续时间会影响到动画组内部的动画的持续时间
- 动画组中设置的时间控制类属性会影响到动画组中的设置的时间控制类属性
在动画组中 统一去设置 媒体时间控制类属性
CATransitation转场动画
type
subtype
startProgress 开始的进度
endProgress 结束的进度
0 0
- 核心动画的简单理解
- 简单核心动画的使用
- iOS 简单的核心动画设置
- iOS核心动画高级理解
- Xcode7.2核心动画Layer的简单认识使用
- 核心动画的结构
- ios的核心动画
- 核心动画的总结
- Lucene索引过程核心类的简单理解
- UIView动画与核心动画的区别
- 核心动画的使用-King
- 理解 TranslateAnimation动画的理解
- 属性动画的理解
- 对android中动画的简单理解及对NotBoringActionBar效果的简单分析
- 核心动画
- 核心动画
- 核心动画
- 核心动画
- 对一个单链表进行逆序排列。
- Android问题集锦之二十九:Cannot run program "/xx/build-tools/xx/aapt": error=2, No such file or directory
- 剑指offer—旋转字符串
- 我的感想
- fileTom3u8.bat
- 核心动画的简单理解
- 基于Nginx1.9+LuaJIT+Kafka的点播监控系统实战(上海卓越智慧树网点播监控系统)
- leetcode—— 39——Combination Sum
- linux mysql 忘记密码怎么办
- 关于javaEE工程版本转换问题。
- 微软 Visual Studio Code 1.0 正式发布下载
- 关于C# 写Windows服务程序
- 影响力(转拆书包精华)
- mybatis 关联sql查询