ios高级动画的简单实现
来源:互联网 发布:电脑pe手动备份数据 编辑:程序博客网 时间:2024/06/05 15:13
详细移步到我的GitHub下载demo。
EasyAnimation
用一行代码写出你想要的动画效果
本封装库抽取了设置动画时常用的属性参数,可以用一句代码快速设置一个或者一组动画效果。如果想要进行更多设置,可以在block里面添加对应的属性,例如重复次数等。
#import "UIView+Animation.h"
将你要使用动画的view执行对应的方法即可。(所有的方法默认执行动画后不返回,如果要返回则在block中设置即可)
//平移到某一点,其中tx和ty表示view的中心点将要移动到的位置
-(void)setPositionAnimationWithtX:(CGFloat)tX andtY:(CGFloat)tY duration:(double)duration additions:(void(^)(CABasicAnimation *animate))block;
//缩放,长宽放大缩小n倍
-(void)setTransformMakeScaleAnimationWithWidthRatio:(CGFloat)W heightRatio:(CGFloat)H duration:(double)duration additions:(void(^)(CABasicAnimation *animate))block;
//绕轴旋转某个角度,选择绕某一轴将其置为1,其余为0,并设置旋转角度(0~2M_PI)
-(void)setTransform3DMakeRotationAnimationWithAngle:(CGFloat)angle isX:(CGFloat)X isY:(CGFloat)Y isZ:(CGFloat)Z duration:(double)duration additions:(void(^)(CABasicAnimation *animate))block;
//透明度变化,设置值为0.0~1.0
-(void)setOpacityAnimationWithOpacity:(float)opacity duration:(double)duration additions:(void(^)(CABasicAnimation *animate))block;
//设置关键帧动画,需要定义一个CGPoint的数组来规划你要走的路线,keytiems可以设置每段位移的位移时间间隔长短比例。 /*calculationMode参数说明
kCAAnimationLinear calculationMode的默认值,表示当关键帧为座标点的时候,关键帧之间直接直线相连进行插值计算;
kCAAnimationDiscrete 离散的,就是不进行插值计算,所有关键帧直接逐个进行显示;
kCAAnimationPaced 使得动画均匀进行,而不是按keyTimes设置的或者按关键帧平分时间,此时keyTimes和timingFunctions无效;
kCAAnimationCubic 对关键帧为座标点的关键帧进行圆滑曲线相连后插值计算,对于曲线的形状还可以通过tensionValues,continuityValues,biasValues来进行调整自定义,这里的数学原理是Kochanek–Bartels spline,这里的主要目的是使得运行的轨迹变得圆滑;
kCAAnimationCubicPaced 看这个名字就知道和kCAAnimationCubic有一定联系,其实就是在kCAAnimationCubic的基础上使得动画运行变得均匀,就是系统时间内运动的距离相同,此时keyTimes以及timingFunctions也是无效的. */
-(void)setKeyAnimationWithKeyPath:(NSArray*)keyPaths keyTimes:(NSArray )keyTimes duration:(double)duration calculationMode:(NSString)calculationMode additions:(void(^)(CAKeyframeAnimation *keyAnimate))block;
//设置动画组,需要传入你要组合的动画并设置其属性,详细见一下获取动画实例的方法。
-(void)setSerialAnimateWithAnimateGroup:(NSArray<CAAnimation*> *)aniArr duration:(double)duration additions:(void(^)(CAAnimationGroup *animaGroup))block;
//设置重复动画,需要传入你要组合的动画并设置其属性,设置每次重复出现的时间间隔和重复次数。
-(void)setRepeatAnimationWithAnimations:(NSArray<CAAnimation*>*)animations instanceCount:(int)instanceCount instanceDelay:(float)instanceDelay repeatCount:(int)repeatCount;
/////获取动画实例的方法 //位移
+(CABasicAnimation *)getPositionAnimationWithtX:(CGFloat)X tY:(CGFloat)Y duration:(double)duration addition:(void(^)(CABasicAnimation *animate))block;
//缩放
+(CABasicAnimation *)getScaleAnimationWithsX:(CGFloat)X sY:(CGFloat)Y duration:(double)duration addition:(void(^)(CABasicAnimation *animate))block;
//旋转
+(CABasicAnimation *)get3DMakeRotationAnimationWithrX:(CGFloat)X rY:(CGFloat)Y rZ:(CGFloat)Z angle:(CGFloat)angle duration:(double)duration addition:(void(^)(CABasicAnimation *animate))block;
//透明度
+(CABasicAnimation *)getOpacityAnimationWithOpacity:(CGFloat)opacity duration:(double)duration addition:(void(^)(CABasicAnimation *animate))block;
//3D缩放
+(CABasicAnimation *)getCATransform3DScaleAnimationWithXRatio:(CGFloat)xRatio YRatio:(float)yRatio duration:(double)duration addition:(void(^)(CABasicAnimation *animate))block;
//关键帧动画
+(CAKeyframeAnimation*)getCAKeyframeAnimationWithKeyPaths:(NSArray*)keyPaths keyTimes:(NSArray*)keyTimes calculationMode:(NSString*)calculationMode duration:(double)duration addition:(void(^)(CAKeyframeAnimation *keyAnimate))block;
- ios高级动画的简单实现
- ios简单动画的实现
- iOS-实现简单的动画效果
- ios气泡动画效果的简单实现
- IOS中UIView动画的简单实现
- iOS简单的动画效果实现
- IOS各种简单动画的实现
- IOS简单的动画
- ios 的简单动画
- iOS UIImageview实现简单动画
- iOS简单动画实现方案
- iOS 碎片动画简单实现
- 自定义动画,高级动画的实现
- 简单动画的实现
- iOS --用CABasicAnimation实现简单的动画效果
- ios平移与抖动动画的简单实现
- iOS 简单动画效果实现的三种方式
- iOS TableView给力动画的简单实现
- 【 Tomcat 】tomcat8.0 基本参数调优配置
- 编译ARToolKit遇到的几个问题
- nodejs elasticsearch基础使用
- 用Java实现约瑟夫问题
- [欧拉回路] 51NOD1967. 路径定向
- ios高级动画的简单实现
- 梯度爆炸分析
- 数据结构实验之查找七:线性之哈希表
- lamp
- 在线英英词典
- Nepire的校OJ入门题解—17蓝桥选拔篇(七)
- 创业公司的抗争,共享单车的合并
- Linux服务器上新增开放端口号
- 七月在线-递归