iOS Swift使用HeroTransition库实现动画时如何调整动画速度?
HeroTransition 动画速度调整方法
有三种常用的调整方式,可根据你的使用场景选择:
- 全局修改所有转场动画的默认时长
直接修改Hero库的全局默认动画时长即可,所有未单独配置的转场都会生效,单位为秒,库默认值为0.4秒:
Hero.shared.defaultAnimationDuration = 1.5 // 可自定义为你需要的时长
- 针对当前转场单独设置时长
你可以给参与转场的单个Hero视图单独指定时长,适合只需要调整某一个共享元素转场速度的场景,修改后的示例代码如下:
let vc = DODViewController.init(with: project , projectType: .doodle, needToMapFolderIndex: nil) let heroId = "newcontentscanvas1" cell.hero.id = heroId cell.hero.duration = 1.0 // 自定义当前cell转场时长 vc.hero.isEnabled = true vc.view.hero.id = heroId vc.view.hero.duration = 1.0 // 与cell保持一致避免动画错位 self.present(vc, animated: true, completion: nil)
- 自定义动画曲线搭配时长
如果同时需要调整动画的快慢变化节奏,可以搭配时间曲线配置一起使用:
// 可选值还有.easeIn、.easeOut、.linear等,也可以自定义控制点 vc.view.hero.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)
内容的提问来源于stack exchange,提问作者isuru
相关产品推荐
相关产品推荐

