如何减少lineSpacing?

时间:2019-03-10 20:27:08

标签: ios swift nsattributedstring

我有一个属性字符串,我想减小它的标准行高。为此,我需要为lineSpacing设置一个负数NSMutableParagraphStyle。但是根据苹果公司的文档,这是非法的。

有趣的事实是,负数lineSpacing实际上可以工作,但是会在UILabel中引起额外的底部间距,具体取决于行数。

enter image description here

是否可以减少行高而没有副作用?

1 个答案:

答案 0 :(得分:1)

使用NSParagraphStyle.lineHightMultiple https://developer.apple.com/documentation/uikit/nsparagraphstyle/1528614-lineheightmultiple

您可以将lineHeightMultiple设置为大于0但小于1的值,这将减少行距。

let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineHeightMultiple = 0.83 //Try different values here to see what looks best

let attrString = NSMutableAttributedString(string: "Your string")
attrString.addAttribute(.paragraphStyle, value: paragraphStyle, range: NSMakeRange(0, attrString.length))

您也可以从情节提要中执行此操作:

enter image description here