iosswiftuilabelnsattributedstringhashtag

NSAttributedString tail truncation in UILabel


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 )

enter image description here

Where shall i start digging - is it wrong attributes on attributed string? Or label layout issue? Thanks!


Solution

  • 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.