如何控制UILabels的行间距?

问题描述:

我使用CustomCell而不是在UITableView如何控制UILabels的行间距?

我在CustomCell上放了两个UILables

Refered这个网站:here,但我失败了......

问:我如何控制UILabels的行间距?

+0

可能重复[如何提高多标签两条线之间的空间?(http://*.com/questions/3880526/how-to-increase-a-space-between-lines-in-multiline-label) –

+0

如果你遇到MTLabel的问题,你可以编辑你的问题来描述你做了什么以及发生了什么,喜欢。 –

+0

好的!我会再尝试!谢谢! – hyekyung

iOS 6开始,您可以将归属字符串设置为UILabel。检查以下内容:

NSMutableParagraphStyle *paragrahStyle = [[NSMutableParagraphStyle alloc] init]; 
[paragrahStyle setLineSpacing:40]; 
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragrahStyle range:NSMakeRange(0, [labelText length])]; 

cell.label.attributedText = attributedString; 
+0

应该是更清晰的反正thnQ 1+ – ashokdy

+0

@Enkidu请你给我一个解决方案的Swift – nivritgupta

编程:

SWIFT 4

使用标签扩展

extension UILabel { 

    // Pass value for any one of both parameters and see result 
    func setLineSpacing(lineSpacing: CGFloat = 0.0, lineHeightMultiple: CGFloat = 0.0) { 

     guard let labelText = self.text else { return } 

     let paragraphStyle = NSMutableParagraphStyle() 
     paragraphStyle.lineSpacing = lineSpacing 
     paragraphStyle.lineHeightMultiple = lineHeightMultiple 

     let attributedString:NSMutableAttributedString 
     if let labelattributedText = self.attributedText { 
      attributedString = NSMutableAttributedString(attributedString: labelattributedText) 
     } else { 
      attributedString = NSMutableAttributedString(string: labelText) 
     } 

     // Line spacing attribute 
     attributedString.addAttribute(NSAttributedStringKey.paragraphStyle, value:paragraphStyle, range:NSMakeRange(0, attributedString.length)) 

     self.attributedText = attributedString 
    } 
} 

现在调用扩展功能

let label = UILabel() 
let stringValue = "How to\ncontrol\nthe\nline spacing\nin UILabel" 

// Pass value for any one argument - lineSpacing or lineHeightMultiple 
label.setLineSpacing(lineSpacing: 2.0) . // try values 1.0 to 5.0 

// or try lineHeightMultiple 
//label.setLineSpacing(lineHeightMultiple = 2.0) // try values 0.5 to 2.0 


或者使用标签实例(只复制&执行该代码来查看结果)

let label = UILabel() 
let stringValue = "How to\ncontrol\nthe\nline spacing\nin UILabel" 
let attrString = NSMutableAttributedString(string: stringValue) 
var style = NSMutableParagraphStyle() 
style.lineSpacing = 24 // change line spacing between paragraph like 36 or 48 
style.minimumLineHeight = 20 // change line spacing between each line like 30 or 40 

// Line spacing attribute 
attrString.addAttribute(NSAttributedStringKey.paragraphStyle, value: style, range: NSRange(location: 0, length: stringValue.characters.count)) 

// Character spacing attribute 
attrString.addAttribute(NSAttributedStringKey.kern, value: 2, range: NSMakeRange(0, attrString.length)) 

label.attributedText = attrString 

斯威夫特3
只需复制&执行该代码,看看结果。

let label = UILabel() 
let stringValue = "How to\ncontrol\nthe\nline spacing\nin UILabel" 
let attrString = NSMutableAttributedString(string: stringValue) 
var style = NSMutableParagraphStyle() 
style.lineSpacing = 24 // change line spacing between paragraph like 36 or 48 
style.minimumLineHeight = 20 // change line spacing between each line like 30 or 40 
attrString.addAttribute(NSParagraphStyleAttributeName, value: style, range: NSRange(location: 0, length: stringValue.characters.count)) 
label.attributedText = attrString 

从界面生成器:

enter image description here