缓动函数与关键帧动画
动画 函数
2023-09-14 08:57:58 时间
缓动函数与关键帧动画
缓动函数指定动画效果在执行时的速度,使其看起来更加真实。
现实物体照着一定节奏移动,并不是一开始就移动很快的。当我们打开抽屉时,首先会让它加速,然后慢下来。当某个东西往下掉时,首先是越掉越快,撞到地上后回弹,最终才又碰触地板。
缓动函数能让动画效果看起来更加真实:).
iOS开发中,能用到缓动函数的地方就属于关键帧动画了,以下是我用关键帧动画做出来的模拟真实时钟效果的动画,效果相当逼真哦,只是这个gif图片的效果不好而已.
- (void)viewDidLoad [super viewDidLoad]; // 显示参考用的view UIView *showView = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 300, 300)]; showView.layer.borderWidth = 1.f; showView.layer.cornerRadius = 150.f; showView.layer.borderColor = [UIColor redColor].CGColor; showView.center = self.view.center; [self.view addSubview:showView]; // 新建layer CALayer *layer = [CALayer layer]; layer.backgroundColor = [UIColor blackColor].CGColor; // 重置锚点 layer.anchorPoint = CGPointMake(0.f, 0.f); // 设置layer的frame值(在showView正中间摆放) layer.frame = CGRectMake(showView.middleX, showView.middleY, 1, 150); // 添加进showView中 [showView.layer addSublayer:layer]; // 定时器 _timer = [[GCDTimer alloc] initInQueue:[GCDQueue mainQueue]]; [_timer event:^{ static int i = 1; // 计算好起始值,结束值 CGFloat oldValue = DEGREES_TO_RADIANS((360/60.f) * i++); CGFloat newValue = DEGREES_TO_RADIANS((360/60.f) * i); // 关键帧动画 CAKeyframeAnimation *animation = \ [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"]; // 设置值 [animation setValues:[YXEasing calculateFrameFromValue:oldValue toValue:newValue func:ElasticEaseOut frameCount:500]]; // 设置持续时间 animation.duration = 0.5f;核心代码(设置值的地方为本人自己所写,需要你自己实现哦)
是不是很容易呢:)
小结:
其实,关键帧动画与基本动画类型没有什么区别,要说区别,那就是关键帧动画要比普通动画更强大,因为它能设置更多的值嘛,普通动画可以实现的效果都可以用关键帧动画替换哦.
WPF中的动画——(四)缓动函数 原文:WPF中的动画——(四)缓动函数 缓动函数可以通过一系列公式模拟一些物理效果,如实地弹跳或其行为如同在弹簧上一样。它们一般应用在From/To/By动画上,可以使得其动画更加平滑。 var widthAnimation = new DoubleAnimation() { ...
相关文章
- 易迅网CSS3 Gradient渐变特效-鼠标滑过出现白色斜线动画
- 前端动画效果案例
- 【100个 Unity实用技能】☀️ | Unity 复用动画控制器 Animator Override Controller 的简单使用
- JavaScript——动画函数封装
- css基础动画
- JavaScript动画基本原理
- js动画效果_js动画函数
- 一篇教会你写90%的shell脚本_flash动画脚本怎么写
- (十)vue动画总结
- 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
- 【约束布局】ConstraintSet 约束集 ( 简介 | 约束属性集合 | 约束集初始化 | 约束集应用到布局中 | 关键帧动画 | TransitionManager 使用 )
- 在 iOS中实现喷枪打字动画的代码详解手机开发
- jQuery动画的实现原理
- Scribus 是一个桌面排版(DTP)软件,是一个以GNU通用公共许可证发布的自由软件。提供Linux、Unix、Mac OS X、OS/2以及微软Windows上运行的原生版本。它以其广泛的页面布局功能堪比于其他非自由应用程序,如PagePlus、QuarkXPress和Adobe InDesign。Scribus 灵活的布局和排版,并有编写档案专业品质图像设置设备的能力。它也可以创建动画和互动的PDF图像和形式。示例使用包括撰写小报纸、小册子、简报、海报和书籍。
- 用AI制作的动画遭宫崎骏批评,研究人员选错画风?(附视频)
- 先睹为快!暴雪公布《暗黑破坏神2:重制版》CG动画