Skip to content

Instantly share code, notes, and snippets.

@joshavant
Created July 21, 2016 03:00
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save joshavant/0540b463b877f0bdecefbc44848a4501 to your computer and use it in GitHub Desktop.
Save joshavant/0540b463b877f0bdecefbc44848a4501 to your computer and use it in GitHub Desktop.
UITextView Height Calculation
extension UITextView {
// Note: This will trigger a text rendering!
func calculateViewHeightWithCurrentWidth() -> CGFloat {
let textWidth = self.frame.width -
self.textContainerInset.left -
self.textContainerInset.right -
self.textContainer.lineFragmentPadding * 2.0 -
self.contentInset.left -
self.contentInset.right
let maxSize = CGSize(width: textWidth, height: CGFloat.max)
var calculatedSize = self.attributedText.boundingRectWithSize(maxSize,
options: [.UsesLineFragmentOrigin, .UsesFontLeading],
context: nil).size
calculatedSize.height += self.textContainerInset.top
calculatedSize.height += self.textContainerInset.bottom
return ceil(calculatedSize.height)
}
}
@Al-works
Copy link

extension UITextView {
// Note: This will trigger a text rendering!
func calculateViewHeightWithCurrentWidth() -> CGFloat {
let textWidth = self.frame.width -
self.textContainerInset.left -
self.textContainerInset.right -
self.textContainer.lineFragmentPadding * 2.0 -
self.contentInset.left -
self.contentInset.right

    let maxSize = CGSize(width: textWidth, height: CGFloat.greatestFiniteMagnitude)
    var calculatedSize = self.attributedText.boundingRect(with: maxSize,
                                                          options: [.usesLineFragmentOrigin, .usesFontLeading],
                                                                  context: nil).size
    calculatedSize.height += self.textContainerInset.top
    calculatedSize.height += self.textContainerInset.bottom

    return ceil(calculatedSize.height)
}

}

@saurabh-selldo
Copy link

Thank you for this gist. It works flawlessly.

@norman93sun
Copy link

working for me πŸ‘

@SuperNova911
Copy link

Thanks god, you saved me 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment