作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的 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/
我是一名优秀的程序员,十分优秀!