После touchUpInside кнопки он запускает серию кода (все данные связаны, ни один код в основной функции не изменяет объект представления), и последнее, что делает код, - это вызывает функцию анимации, которую я вставил ниже. Проблема в том, что анимация выглядит не так, как должна.
Желаемая анимация:
- FooterImg должен исчезнуть
- Текст footerBar должен исчезнуть
- Текст footerBar должен исчезнуть
- FooterImg должен снова исчезнуть
Текст и изображение занимают одну и ту же позицию на экране, поэтому визуальный элемент должен заменять один другой, а затем возвращаться в исходное состояние. Представления не вложены друг в друга, они используют один и тот же контейнер.
Фактическая анимация, наблюдаемая в симуляторе:
-footerImg даже не виден -footerBar текст появляется сразу после нажатия триггера, без анимации -footerBar текст исчезает -footerImg исчезает
footerBar - это UIButton
-Это начальное состояние, прежде чем действие когда-либо начнется, заключается в том, что кнопка пуста и прозрачна (невидима для пользователя)
-Если это важно, это не кнопка, которая запускала функцию
-Имеет четкий фон, поэтому его текст должен быть единственным, что анимируется в / из
footerImg - это UIImageView
-Просто изображение значка, ничего особенного
func animateFeedback() {
UIView.animateWithDuration(0.25, delay: 0.0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0, options: nil, animations: {
self.footerImg.alpha = 0
self.footerBar.alpha = 0
},
completion: { finished in
self.footerBar.setTitle("Item added", forState: UIControlState.Normal)
}
)
UIView.animateWithDuration(1.5, delay: 0.5, options: nil, animations: {
self.footerBar.alpha = 1
}
, completion: nil
)
UIView.animateWithDuration(0.75, delay: 1.25, options: nil, animations: {
self.footerBar.alpha = 0
}
, completion: { finished in
self.footerBar.setTitle("", forState: UIControlState.Normal)
}
)
UIView.animateWithDuration(0.25, delay: 1.5, options: nil, animations: {
self.footerImg.alpha = 1
}
, completion: nil
)
}