Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func calculateTextHeight(myString: String, myWidth: CGFloat, myFont: UIFont) -> CGFloat {
- let textStorage = NSTextStorage(string: myString)
- let textContainer = NSTextContainer.init(size: CGSize(width: myWidth, height: CGFloat.max))
- let layoutManager = NSLayoutManager()
- layoutManager.addTextContainer(textContainer)
- textStorage.addLayoutManager(layoutManager)
- textStorage.addAttribute(NSFontAttributeName, value: myFont, range: NSMakeRange(0, textStorage.length))
- textContainer.lineFragmentPadding = 0
- textContainer.lineBreakMode = .ByWordWrapping
- layoutManager.glyphRangeForTextContainer(textContainer)
- return layoutManager.usedRectForTextContainer(textContainer).size.height
- }
- var s = "ABCDE 12345"
- print(calculateTextHeight(s, myWidth: 500, myFont: UIFont.systemFontOfSize(14)))
- // prints 16.7 (correct)
- s = "ABCDE 12345 💩"
- print(calculateTextHeight(s, myWidth: 500, myFont: UIFont.systemFontOfSize(14)))
- // prints 22.9 (should be 16.7)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement