Цвет фона UIView возвращается к исходному цвету после завершения
Есть ли причина, почему 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
вернуться к белому покрытию текста. Любой вклад с благодарностью.