左右对齐标签“\ n”

时间:2017-04-06 09:50:14

标签: ios swift uilabel

我有一个带有这样的文字的标签

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

1 个答案:

答案 0 :(得分:0)

`你可以创建一个Class类(自定义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