CAAnimation - 显示/隐藏持续时间为 0

Posted

技术标签:

【中文标题】CAAnimation - 显示/隐藏持续时间为 0【英文标题】:CAAnimation - Show/Hide with duration of 0 【发布时间】:2017-02-14 16:22:50 【问题描述】:

我使用CAAnimation 为图层设置动画,然后使用AVExportSession 将它们叠加在视频上。

我试图通过将持续时间设置为 0 来使图层立即出现/消失。但是,0.25f 似乎有一个最小值,因此,像不透明度这样的动画属性有一个过渡。

是否可以使用CAAnimation 实现CALayer 的即时显示/隐藏?

【问题讨论】:

尝试将其设置为一个小的非零值。如果您将其保留为 0,它将继承其所在事务的持续时间。 虽然 hacky 但 dan 的建议是实现它的唯一方法...... 【参考方案1】:

我建议你在这里快速浏览一下核心动画编程指南 - Animation_Types_Timing

您还可以尝试 dan 建议的非零值作为快速破解。

我希望这可能会让你走上正轨。

【讨论】:

所以@dan 方法效果很好。问题是,如果我想让字幕在视频的开头可见(beginTime = AVCoreAnimationBeginTimeAtZero),会有一个非常快的闪光。我可以将beginTime设置为负数,导出看起来不错,但是在播放器里还是有flash。

以上是关于CAAnimation - 显示/隐藏持续时间为 0的主要内容,如果未能解决你的问题,请参考以下文章

CAAnimation 隐藏了一半的视图

带有 timeOffSet 的 CAAnimation

CATransaction 和 CAAnimation 有啥区别?

iOS中的显示动画(属性动画)

链接情况下的 CAAnimation 内存使用情况

CAAnimation 正在覆盖以前的 CAAnimation 动画