【发布时间】:2017-06-23 08:00:01
【问题描述】:
早在 1996 年,我就为客户创建了旋转徽标,因为我可以,现在在 2017 年我又回来了,感谢Animated。
<hr /> 下方的代码可以运行,但重新启动时会出现小问题。
知道如何使用Animated.loop 吗?它不会:«每次到达终点,它都会重置并从头开始»。
Animated.loop(
Animated.timing(this.state.spinValue, {
toValue: 1,
duration: this.props.duration,
easing: Easing.linear,
useNativeDriver: true
})
).start();
static defaultProps = {
duration: 60 / (33 + 1/3) * 1000
}
constructor (props) {
super(props);
this.state = {
spinValue: new Animated.Value(0)
};
}
componentDidMount () {
this._animate();
}
_animate () {
Animated.timing(this.state.spinValue, {
toValue: 1,
duration: this.props.duration,
easing: Easing.linear,
useNativeDriver: true
}).start(event => {
if (event.finished) {
this.setState({
spinValue: new Animated.Value(0)
}, this._animate.bind(this));
}
});
}
render () {
const spin = this.state.spinValue.interpolate({
inputRange: [0, 1],
outputRange: ['0deg', '360deg']
});
return (
<View style={ Loading.style.container }>
<Animated.Image
source={ logo }
style={{ transform: [{ rotate: spin }] }}
/>
</View>
);
}
【问题讨论】:
标签: react-native react-animated