I am using the following code to dynamically adjust the height of the containerView which contains my UITextView
    func textViewDidChange(textView: UITextView) {
    let amountOfLinesToBeShown:CGFloat = 6
    let maxHeight:CGFloat = textView.font!.lineHeight * amountOfLinesToBeShown
    if ((textView.contentSize.height / textView.font!.lineHeight) < 6) {
        topConstraint?.constant = -textView.sizeThatFits(CGSizeMake(textView.frame.size.width, maxHeight)).height - keyboardFrameSize!.height
        containerView.layoutIfNeeded()
        containerView.updateConstraints()
    }
}
The problem is, when I am typing, it appears like this: 

and the desired effect is this:

 
     
     
     
     
     
    