Resize textField Based On Content
You have to use an UITextView
instead of an UITextField
.
Then, you can use the sizeThatFits
method.
But first you have to know how high one line will be. You can get that information by using lineHeight
:
var amountOfLinesToBeShown: CGFloat = 6
var maxHeight: CGFloat = yourTextview.font.lineHeight * amountOfLinesToBeShown
After that, just call the sizeThatFits
method inside your viewDidLoad
method and set the maxHeight (line * 6
) as your textview height:
yourTextview.sizeThatFits(CGSizeMake(yourTextview.frame.size.width, maxHeight))
Swift 3
var textView : UITextView!
override func viewDidLoad() {
super.viewDidLoad()
textView = UITextView()
textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: textView.frame.size.height))
}