2016-02-07 72 views
1

我試圖給LineSpacing和LineHeight給我的UILabel。我有兩個功能的擴展,兩個都可以單獨工作。不能讓他們一起工作。Swift:我如何在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) 

我試圖將這些功能合併成一個,但我總是錯誤告終。請幫助?

回答

0

這裏的的setText功能的版本,改編自斯威夫特答案在How do you use NSAttributedString?

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 
} 

這似乎是爲我工作。

+0

太棒了,就是我需要的!謝謝! =) –

相關問題