我有一个带有这样的文字的标签
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 :(得分: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