2017-04-06 14 views
1

は私が整列する方法はあり、それはこの揃えラベルは

A  34 
B  11 
C  5 
D 3 

のように見えるこの

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

のようなテキストと1つのラベルを持っていますラベルは左から右のように表示されます:

A  34 
B  11 
C  5 
D  3 
+0

「\ t」の使用はどうですか? –

+0

NSAttributedStringがそうすることができるようです。 – Larme

+0

私はデータベースから自分のテキストを取得するので、動的です。どのように追加するには適切なスペースを知っていますか? – OuSS

答えて

0

`あなたはma行クラス(カスタム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