gpt4 book ai didi

swift : How Can I have both LineSpacing and LineHeight on UILabel

转载 作者:行者123 更新时间:2023-11-28 08:46:18 25 4
gpt4 key购买 nike

我正在尝试为我的 UILabel 提供 LineSpacing 和 LineHeight。我有一个具有两个功能的扩展,它们都可以单独工作。虽然不能让他们一起工作。

extension UILabel {

func setText(text: String, lineSpacing: CGFloat) {
self.attributedText = NSAttributedString(string: text, attributes: lineSpacingAttribute(lineSpacing))
}

func setText(text:String, CharacterSpacing:CGFloat) {

let attributedString = NSMutableAttributedString(string: text)
attributedString.addAttribute(NSKernAttributeName, value: CharacterSpacing, range: NSMakeRange(0, text.characters.count))
self.attributedText = attributedString

}
}

当我这样做时,第二个函数显然会覆盖第一个函数:

    ExampleLabel.setText(myTextString, withLineSpacing: 10)
ExampleLabel.setText(myTextString, CharacterSpacing: 10, lineSpacing: 10)

我试图将这些功能合并为一个,但我总是以错误告终。请帮助?

最佳答案

这是 setText 函数的一个版本,改编自 How do you use NSAttributedString? 上的 Swift 答案:

func setText(text:String, CharacterSpacing:CGFloat, lineSpacing: CGFloat) {
let myParagraphStyle = NSMutableParagraphStyle()
myParagraphStyle.lineSpacing = lineSpacing
let myAttributes:Dictionary = [
NSParagraphStyleAttributeName: myParagraphStyle,
NSKernAttributeName: CharacterSpacing
]
let attributedString = NSAttributedString(string: text, attributes: myAttributes)
label1.attributedText = attributedString
}

这似乎对我有用。

关于 swift : How Can I have both LineSpacing and LineHeight on UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35251854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com