reactjs - 在 react-native 动画中使用计算变量
问题描述
如何使用 Animated 根据视图对圆的大小进行动画处理,对宽度和高度进行动画处理,导出所需的其他值?(半径和居中的左/上)动画 WH,导出半径为 WH/2,居中的左和上是左 - 半径和上 - 半径。我如何计算这些以在 Circle 的风格中使用?(我正在做 3 个有效的插值,但应该有更好更有效的方法)
const CircAnim = (props) => {
const fadeAnim = useRef(new Animated.Value(0)).current // Initial value : 0
fadeAnim.setValue(0);
const wh = fadeAnim.interpolate({
inputRange: [0, 1],
outputRange: [props.startSize, 0],
})
const radius = fadeAnim.interpolate({
inputRange: [0, 1],
outputRange: [props.startSize/2, 0],
})
const centeredLeft = fadeAnim.interpolate({
inputRange: [0, 1],
outputRange: [props.style.left - props.startSize/2, props.style.left],
})
const centeredTop = fadeAnim.interpolate({
inputRange: [0, 1],
outputRange: [props.style.top - props.startSize/2, props.style.top],
})
React.useEffect(() => {
Animated.timing(
fadeAnim,
{
toValue: 1,
duration: 3000,
}
).start();
}, [props.restarting])
解决方案
而且,这是我的答案。很简单,只需要了解规格即可。当然,这是简单的数学运算,所以下一个问题是,如何对这些值进行更复杂的数学运算。
const radius = Animated.divide(wh,2);
const centeredLeft = Animated.subtract(props.style.left,radius);
const centeredTop = Animated.subtract(props.style.top,radius);
推荐阅读
- amazon-web-services - AWS EBS 卷未显示 Windows 磁盘管理
- c# - 模拟 - 虽然设置 .Returns(true) 但总是得到假
- ios - canOpenUrl 在目标 C 中总是返回 NO
- pandas - 在 Pandas 中使用 nans 创建箱线图时发出警告
- ansible - 当模板是有效的 json 时,Ansibles 'lookup' 返回不同的类型,我该如何防止呢?
- mysql - 为什么 update 子句需要很长时间,而 select 子句(具有相同的逻辑)不需要?
- c++ - C++ 矢量擦除功能无法正常工作
- excel - Dependednt 下拉列表和使用 INDIRECT 和 SUBSTITUTE 定义的不同名称变体
- javascript - 嵌套键值对分组到数组中
- gcc - 安装 gcc 成功,但无法启用