0 Replies
      Latest reply on Jul 10, 2019 10:15 AM by azbik999@gmail.com
      azbik999@gmail.com Level 1 Level 1 (0 points)

        I'm trying to implement by-design labels coming from Sketch e.g. I need text styles with font size = 19 and line height = 50. So I ended up using `NSAttributedString` with `NSMutableParagraphStyle` but was stopped by problem with text being sticked to bottom of `UILabel`

         

         

        I've already tried to use `lineHeightMultiple` and `lineSpacing` but those didn't give me the line height I wanted so I ended up using `minimumLineHeight` and `maximumLineHeight` equal the same

         

         

        Here is my approach to make `NSAttributedString`

         

         

        ```swift
            private static func makeAttributedString(
                with attributes: TextAttributes,
                text: String? = nil,
                alignment: NSTextAlignment = .center
            ) -> NSAttributedString {
                let font = UIFont(name: attributes.font.rawValue, size: attributes.fontSize)!
        
        
                let paragraph = NSMutableParagraphStyle()
                paragraph.alignment = alignment
                paragraph.paragraphSpacing = attributes.paragraph
                paragraph.minimumLineHeight = attributes.lineHeight // equal 50 in my case
                paragraph.maximumLineHeight = attributes.lineHeight // equal 50 in my case
        
        
                let attributes: [NSAttributedStringKey: Any] = [
                    NSAttributedStringKey.paragraphStyle: paragraph,
                    NSAttributedStringKey.foregroundColor: attributes.textColor,
                    NSAttributedStringKey.kern: attributes.kern,
                    NSAttributedStringKey.font: font
                ]
        
        
                return NSAttributedString(string: text ?? "", attributes: attributes)
            }
        ```

         

         

        I expect result similar to design

         

        https://i.imgur.com/CoszbW7.png

         

        but actually getting

         

        https://i.imgur.com/ERrFqsN.png

         

         

        Note: setting height constraint to 50 is not applicable because I also need multiline labels but there is the same bug with them