Latest 1.2
License MIT
Platforms ios 8.0, requires ARC


An NSObject subclass to handle resizing of UITextView as the user types in. The textview resizes as long as the number of lines lies between specified minimum and maximum number of lines.
These are the public properties which can be set from the client code.

  • animationDuration : Default 0.5
  • maximumNumberOfLines : Default INT_MAX
  • minimumNumberOfLines : Default 1


Add following lines in your pod file for Swift 4

pod 'GrowingTextViewHandler-Swift', '1.2'

For older versions, use

pod 'GrowingTextViewHandler-Swift', '1.0.3'


First create an instance of GrowingTextViewHandler. It takes an UITextView and its height constraint as arguments. You can specify the maximum and minimum number of lines. Then in the method "textViewDidChange" call the method resizeTextView

var handler:GrowingTextViewHandler?
@IBOutlet weak var aTextView: UITextView!
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
override func viewDidLoad() {
self.handler? = GrowingTextViewHandler(textView: self.aTextView, heightConstraint: heightConstraint)
self.handler?.minimumNumberOfLines = 2
self.handler?.maximumNumberOfLines = 6

func textViewDidChange(textView: UITextView) {

However when you set text programmatically, textViewDidChange(textView: UITextView) does not get called. For this case you can resize UITextView as follows:

self.handler?.setText("Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", animated: true)


Latest podspec

    "name": "GrowingTextViewHandler-Swift",
    "platforms": {
        "ios": "8.0"
    "version": "1.2",
    "summary": "An NSObject subclass to handle resizing of UITextView as the user types in.",
    "authors": {
        "Susmita Horrow": "[email protected]"
    "license": "MIT",
    "homepage": "",
    "source": {
        "git": "",
        "tag": "1.2"
    "source_files": "GrowingTextViewHandler/Source/*",
    "requires_arc": true,
    "swift_version": "4.2"

Pin It on Pinterest

Share This