将UILabel文本与特定字符

时间:2016-10-10 17:55:02

标签: ios swift uilabel text-alignment

我正在使用UILaber以非常大的字体显示第二个倒计时(大小240)。显示的字符串格式为“xxx.xx”,x为字符0-9。我想将文本与标签中显示的字符串中的点字符(。)对齐。我在标签中使用textAlignment作为.Center,但是某些字符串的实际显示长度不同,导致点字符在更新字符串时左右移动。 F.X. “1”的textContainer小于“8”。

是否可以进行这种角色整理?

Center aligened UILabel

3 个答案:

答案 0 :(得分:2)

有趣的问题配偶:

请在下面找到解决方案:

Storyboard using Stacks

基本上我在这里做的是:

  1. 使用Storyboard我在水平堆栈视图中拍摄了3个垂直堆栈视图。
  2. 只需将第二个垂直堆栈视图与静态宽度对齐,其他堆栈视图将相应调整。
  3. 您可以按照附加的屏幕截图进行约束。
  4. 标签不需要约束,只需根据需要进行文本对齐。

    干杯!

答案 1 :(得分:0)

  1. 将三个标签贴在一起..
  2. label1 | labelDot | label2将匹配您的XX.XXX
  3. 右对齐您的label1,修复您的labelDot,左对齐您的label2

答案 2 :(得分:0)

let attributedStringOne = NSAttributedString.init(string: "XXX", attributes: [NSAttributedStringKey.baselineOffset: 0])
let attributedStringTwo = NSAttributedString.init(string: ".", attributes: [NSAttributedStringKey.baselineOffset: label.frame.height / 4])
let attributedText = NSMutableAttributedString.init()
attributedText.append(attributedStringOne)
attributedText.append(attributedStringTwo)

label.attributedText = attributedText

baselineOffset NSNumber 类型。因此,您可以根据基线设置您想要的数量。