2

过去,我曾经以非常高的帧速率为 a设置LayoutAnimation.scaleXY动画。现在,我想用动画来实现类似的高帧率。flexViewAnimatedflex

我知道我不能useNativeDriver: true用来制作动画flex

LayoutAnimation总是在本地运行动画吗?如果是这样,它如何在不能运行flex动画Animated的情况下运行动画useNativeDriver: true

有没有解决的办法?我想flex与许多其他动画(例如opacitytranslatescale)并行运行我的动画,并且没有useNativeDriver: true动画是不可接受的断断续续的。

PS我的问题解决了,但和/或flex有什么显着差异吗?heightwidth

4

1 回答 1

4

根据这篇文章,“LayoutAnimation 的工作原理是通过它们的唯一键识别视图,计算它们的预期位置,并依赖底层的原生框架(iOS 上的 CoreAnimation)来动画变化。”,所以显然LayoutAnimation总是原生运行动画。

Apple 文档中,有两个动画框架,UIKit 和 Core Animation(可能与 Android 类似),Core Animation 比 UIKit 更强大。

所以如果我不得不猜测,LayoutAnimation可以动画flexAnimated不能因为LayoutAnimation使用 Core Animation 而Animated使用 UIKit。

flex与高度/宽度不同,因为flex它始终是父容器的一小部分(例如,包裹在父容器内的两个Views将各自占据 方向上长度的 1/2 )。flex: 1ViewflexDirection

于 2019-01-04T23:17:41.593 回答