Эта аномалия анимации влияет только на iOS - Android выполняет анимированное событие, как и предполагалось. Анимация просто скрывает и показывает <Animated.View/>
с анимированным значением margin-top
или top
, но после примерно 4 анимаций элементы в <Animated.View/>
полностью исчезают, и у меня остается только высота и ширина <Animated.View/>
.
Чтобы представить это в перспективе, вот несколько скриншотов:
А потом я остался играть в прятки с НИ ОДНЫМИ Воздушными шарами. (
Вот код, он довольно простой Animated.timing
звонки, ничего особенного ...
componentWillReceiveProps = (nextProps) => {
if (this.props.animated && this.props.animate !== nextProps.animate) {
if (nextProps.animate) {
Animated.parallel([
Animated.timing(
this.animatedTop, {
toValue: 0, // Show the header
duration: 1000,
}
),
Animated.timing(
this.opacity, {
toValue: 1,
duration: 1300,
}
)
]).start()
} else {
Animated.parallel([
Animated.timing(
this.animatedTop, {
toValue: this.hiddenTop, // Hide the header ... no, no, don't go! X|
duration: 1000,
}
),
Animated.timing(
this.opacity, {
toValue: 0,
duration: 800,
}
)
]).start()
}
}
}
Как вы можете себе представить, все остальное так же нормально, как и пчелы. Анимация работает совершенно нормально на Android, но это происходит на iOS ... почему? Я пробовал transform: [{translateY: this.animatedTop}]
, но после непрозрачного текста остается пустое место ... Я хочу, чтобы оно ушло с экрана, но оно отказывается возвращаться. Почему?!?
Environment:
OS: macOS Sierra 10.12.6
Node: 6.11.0
Yarn: 1.7.0
npm: 5.3.0
Watchman: 4.9.0
Xcode: Xcode 9.2 Build version 9C40b
Android Studio: 3.0 AI-171.4443003
Packages:
react: 16.3.1
react-native: ~0.55.2