Swift 3: UITextView - Altura Dynanmic - Programáticamente

Tengo una clase keyboardContainer (Subclase de UIView / creada programáticamente para que no haya storyboard) que incluye un UITextView para que el usuario escriba mensajes. Se usa dentro de una clase de registro de Chat y se establece como inputAccessoryView. Quiero cambiar dinámicamente la altura cuando el usuario está escribiendo.

Busqué respuestas y encontré algunas. Sin embargo, no obtuve la mayoría de ellos, ya que no funcionaban para mí.

¿Qué debo implementar para obtener el efecto que quiero tener?

¡Gracias por tu ayuda!

EDITAR:

En primer lugar gracias por tu ayuda!

Sin embargo, soy bastante nuevo en la codificación, así que no pude resolver el problema. Supongo que tiene algo que ver con la forma en que creé mi clase keyboardContainer y sus restricciones ...

Aquí está el código relevante desde mi clase de contenedor de teclado:

 let textField:UITextView = {
    let view = UITextView()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.layer.cornerRadius = 15
    view.layer.masksToBounds = true
    view.font = UIFont.systemFont(ofSize: 15)
    view.backgroundColor = .white
    return view
}()

overried init(frame: CGRect){
super.init(frame: frame)

addSubview(textField)
    textField.leftAnchor.constraint(equalTo: leftButton, constant: 5).isActive = true
    textField.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true

    textFieldHeightAnchor = textField.heightAnchor.constraint(equalTo: heightAnchor, constant: -10)
    textFieldHeightAnchor.isActive = true

    textFieldRightAnchor = textField.rightAnchor.constraint(equalTo: rightAnchor, constant: -85)
    textFieldRightAnchor.isActive = true
}

Dentro de mi ChatLog estoy usando esto:

 lazy var keyboard: KeyboardContainer = {
    let key = KeyboardContainer()
    key.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 45)
    key.sendButton.addTarget(self, action: #selector(handleSend), for: .touchUpInside)
    return key
}()

override var inputAccessoryView: UIView?{
    get{
        return keyboard
    }
}

¿Qué necesito cambiar? Supongo que las limitaciones?

Respuestas a la pregunta(3)

Su respuesta a la pregunta