Мой проект очень прост, просто чтобы объяснить мой вопрос. В представлении контроллера вида есть UITextField
и UILabel
. Если я коснулся этикетки, метка повернет M_PI
, а текстовое поле сменит первого ответчика. Если текстовое поле не становится первым ответчиком, метка вращается, как ожидалось. Но если текстовое поле становится первым ответчиком и появляется клавиатура. Когда метка постучана, она переходит в конец преобразования без анимации.Отключить клавиатуру при другом режиме анимации
Я написал этот код в Xcode8, быстрый 3,0
Код:
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var label: UILabel!
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
UIView.animate(withDuration: 0.25) {
self.label.transform = .identity
}
return true
}
@IBAction func labelTapped(_ sender: AnyObject) {
textField.resignFirstResponder()
UIView.animate(withDuration: 0.25) {
self.label.transform = self.label.transform.rotated(by: CGFloat(M_PI))
}
}
}
вы можете попробовать поставить 'resignFirstResponder()' на блоке 'UIView.animate' завершения – Tj3n
Может клавиатура анимация и моя анимация делают одновременно? – leizh00701
Затем вы можете наблюдать 'UIKeyboardWillHideNotification' и добавлять анимацию туда – Tj3n