Post not yet marked as solved
Post marked as unsolved with 0 replies, 1,819 views
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 sameHere 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 designhttps://i.imgur.com/CoszbW7.pngbut actually gettinghttps://i.imgur.com/ERrFqsN.pngNote: setting height constraint to 50 is not applicable because I also need multiline labels but there is the same bug with them