Posts

Post not yet marked as solved
0 Replies
1.8k 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
Posted Last updated
.