У меня есть пользовательская реализация UIButton с несколькими простыми анимациями, основанными на различных сенсорных событиях.
addTarget(self, action: #selector(touchDown), for: [.touchDown, .touchDragEnter])
addTarget(self, action: #selector(touchUp), for: [.touchUpInside, .touchDragExit, .touchCancel])
@objc private func touchDown() {
animator.stopAnimation(true)
backgroundColor = delegate.highlightColor.background
setTitleColor(delegate.highlightColor.foreground, for: .normal)
setTitleColor(delegate.highlightColor.foreground, for: .highlighted)
}
@objc private func touchUp() {
animator = UIViewPropertyAnimator(duration: 0.5, curve: .easeOut, animations: {
self.backgroundColor = self.buttonColor.background
self.setTitleColor(self.buttonColor.foreground, for: .normal)
})
animator.startAnimation()
}
Все работает нормально для большинства моих кнопок, за исключением нескольких, где я должен сделать несколько пользовательских рисунков с помощьюиспользуя ничью (прямоугольник).Может показаться, что вы не можете использовать draw (rect), если анимируете такие вещи, как backgroundColor.
Есть какие-нибудь подсказки, как заставить это работать?