Есть ли причина, по которой backgroundColor
из UIView
будет возвращаться к своему первоначальному цвету после изменения его свойства цвета во вложенном методе UIView.animate
?Я установил его для очистки во время анимации, затем он переходит обратно в белый цвет в последнюю секунду до последнего завершения.
Я попытался преобразовать в animateWithKeyframes
, и у меня все еще есть подобное условие.
В основном я пытаюсь использовать представление в качестве маски и анимировать его через метку.У меня есть darkModeBool
, который указывает, хочет ли пользователь темную тему.Я хочу, чтобы label.textColor и цвет view.Background менялись в соответствии с моим заданным протоколом темы, когда он попадает в этот блок анимации, если для этого darkModeBool
установлено значение true.
func animateGraphic() {
firstMaskWidthConstraint.constant = 0
UIView.animate(withDuration: 1.2, delay: 1, options: .curveLinear, animations: {
self.view.layoutIfNeeded()
self.firstMaskView.backgroundColor = .clear
print("1")
}) { (_) in
self.secondMaskHeightConstraint.constant = 0
UIView.animate(withDuration: 0.8, delay: 0, options: .curveEaseIn, animations: {
self.view.layoutIfNeeded()
self.secondMaskView.backgroundColor = .clear
print("2")
}, completion: { (_) in
UIView.animate(withDuration: 1, delay: 0.8, options: .curveEaseInOut, animations: {
self.view.layoutIfNeeded()
self.view.backgroundColor = SproutTheme.current.backgroundColor.cgColor
self.sproutLabel.textColor = SproutTheme.current.textColor
}, completion: { (_) in
RunLoop.current.run(until: Date(timeIntervalSinceNow: 1.8))
self.popToNavigationStack()
})
})
}
}
Когда предполагается представлениечтобы изменить его backgroundColor
во втором до последнего завершения, firstMaskView
и secondMaskView
возвращаются к белому покрытию текста.Любой вклад приветствуется.