2017-04-06 68 views
1

我有一個標籤,像這樣對齊的標籤有「 n」

label.text = "A 34\nB 11\nC 4\nD 3" 

文字它看起來像這樣

A  34 
B  11 
C  5 
D 3 

有沒有辦法對齊標籤從左到右,因此它看起來像:

A  34 
B  11 
C  5 
D  3 
+0

怎麼樣使用'\ t'? –

+0

NSAttributedString似乎能夠做到這一點。 – Larme

+0

我從數據庫中獲取我的文本,所以它是動態的,我如何知道正確的空間添加? – OuSS

回答

0

`你可以馬ke行類(自定義UIView)並且每個「列」元素(單獨的UILabel)由用於填充它的數據設置。然後您可以有一個表類,以便您可以使用最長的字符串並調整每列的位置。這種方法會給你很多控制權,但額外的工作。

或者使用帶製表位的NSAttributedString。

let myText = "A\t34\nB\t11\nC\t5\nD\t3" 
let paragraphStyle = NSMutableParagraphStyle() 
paragraphStyle.tabStops = [NSTextTab(textAlignment: NSTextAlignment.Left, location: 150, options: [:])] 
paragraphStyle.headIndent = 150 
label.attributedText = NSAttributedString(string: text, attributes:[NSParagraphStyleAttributeName: paragraphStyle]) 

您可以在一個循環計算最長的字符串寬度來確定headIndent應該是什麼。但是,這不允許右列如右例所示。你會得到這樣的東西:

A  34 
B  11 
C  5 
D  3