I'm using ContextLabel to parse @ , # and URL's. This is the best solution i found, cause it sizes correctly and dont affect performance. It firstly parses string at input and than converts it to NSAttributedString
and after this assigns it to attributedText
property of UILabel
. Everything works as expected, except tail truncation - it's very incorrect ( see pic below )
Where shall i start digging - is it wrong attributes on attributed string? Or label layout issue? Thanks!
I had this problem and fixed it by adding a NSParagraphStyle
specifying the desired line break mode:
//assuming myString is an NSMutableAttributedString
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .byTruncatingTail
let range = NSRange(location: 0, length: myString.mutableString.length)
myString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: range)
See Word wrap for NSMutableAttributedString for further reference.
Following also works irrespective of using AttributedText or normal text.
Make sure to add the below line after setting the AttributedText and font to the label:
label.lineBreakMode = .byTruncatingTail
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With