Я пытаюсь сделать вращающуюся анимацию, у меня была идея использовать три четверти круга и анимировать их с помощью поворотов.
У меня есть проблема, пока эти изображения вращаются по отдельности, я хочу Поверните все 3 изображения одновременно, у меня была идея поместить их в Animated.View, но это не сработает и ничего не будет визуализировано (я думаю, у вас не может быть Animated компонентов внутри Animated компонентов).
Есть идеи, как это сделать? В настоящее время мой код JSX выглядит следующим образом (ничего не будет отображаться)
<Animated.View style={[styles.container], {transform: [{rotate: containerRotation}]}}>
<Animated.Image source={require('../../assets/spinner.png')} style={[styles.spinnerCircle, {transform: [{rotate: firstRotation}]}]} />
<Animated.Image source={require('../../assets/spinner.png')} style={[styles.spinnerCircle, {transform: [{rotate: secondRotation}]}]} />
<Animated.Image source={require('../../assets/spinner.png')} style={[styles.spinnerCircle, {transform: [{rotate: thirdRotation}]}]} />
</Animated.View>
Вот интерполяции:
const firstRotation = this.rotation.interpolate({
inputRange: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
outputRange: ['0deg', '0deg', '0deg', '90deg', '180deg', '180deg', '180deg', '270deg', '360deg', '360deg', '360deg', '450deg', '540deg', '540deg', '540deg', '630deg', '720deg']
});
const secondRotation = this.rotation.interpolate({
inputRange: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
outputRange: ['0deg', '90deg', '90deg', '90deg', '180deg', '270deg', '270deg', '270deg', '360deg', '450deg', '450deg', '450deg', '540deg', '630deg', '630deg', '630deg', '720deg']
});
const thirdRotation = this.rotation.interpolate({
inputRange: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
outputRange: ['0deg', '90deg', '180deg', '180deg', '180deg', '270deg', '360deg', '360deg', '360deg', '450deg', '540deg', '540deg', '540deg', '630deg', '720deg', '720deg', '720deg']
});
const containerRotation = this.rotation.interpolate({
inputRange: [0, 16],
outputRange: ['0deg', '360deg']
});