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