Я пытаюсь развернуть текстовое поле моего сообщения, когда пользователь начинает печатать, анимируя ограничение макета Right.Текстовое поле расширяется, однако оно расширяется в обе стороны от центра, что не является желаемым эффектом, поскольку я обновляю только одно ограничение, почему меняется другое?
func animateTextField(textfield : UITextField, constraint : NSLayoutConstraint) {
let isTextFieldExpanded = constraint.constant == 15
constraint.constant = isTextFieldExpanded ? 59 : 15
UIView.animate(withDuration: 0.2, delay: 0, options: .curveEaseInOut, animations: {
textfield.layoutIfNeeded()
textfield.translatesAutoresizingMaskIntoConstraints = false
})
}
Для большего контекста я вызываю метод в той же модели представления, которую затем вызываю из моего контроллера представления.
func handleTypingAnimation(view : UIView, textField : UITextField, constraint : NSLayoutConstraint) {
if textField.text?.isEmpty == false {
animateSendButtonAppear(view: view)
animateTextField(view: view, textfield: textField, constraint: constraint)
}else{
animateSendButtonHide(view: view)
}
}
My View Controller
@IBAction func didStartTyping(_ sender: UITextField) {
messageVM.handleTypingAnimation(view: sendButtonView, textField: messageTextField, constraint: textfieldRightConstraint)
}
Мое ограничение макета
@IBOutlet var textfieldRightConstraint: NSLayoutConstraint!