2016-10-10 17 views
1

我正在使用UILaber以非常大的字體(大小爲240)顯示第二個倒計時。顯示的字符串格式爲「xxx.xx」,x的字符爲0-9。我想將文本與標籤中顯示的字符串中的點符號(。)對齊。我在標籤中使用textAlignment作爲.Center,但某些字符串在實際顯示的長度上有所不同,導致點字符在字符串更新時左右移動。 F.X. 「1」的textContainer小於「8」。將UILabel文本與特定字符對齊

是否有可能做這種字符對齊?

Center aligened UILabel

+2

這並不回答你的問題,但這是一個替代方案。使用兩個標籤,一個用於三位整數數字,另一個用於兩個小數位。在兩個標籤之間放置一個點的圖像(或者您想要製作點)。然後,您可以垂直對齊這些點,將這些點左側的整個數字標籤右對齊,然後左對齊這些點右側的分數標籤。 – keithbhunter

回答

2

有趣的問題隊友:

請在下面找到一個解決方案:

Storyboard using Stacks

基本上是我在這裏所做的是:

  1. 用故事板我在Hor裏面採取了3個垂直堆棧視圖izontal堆棧視圖。
  2. 只是將第二個垂直堆棧視圖與靜態寬度對齊,其他堆棧視圖將相應地進行調整。
  3. 休息你可以按照附件的屏幕截圖進行約束。

標籤不需要任何約束,只需根據需要對齊文本。

乾杯!

0
  1. 連接三個標籤一起..
  2. LABEL1 | labelDot |標籤2將在符合XX.XXX
  3. 右對齊您LABEL1,解決您的labelDot,左對齊的標籤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 is NSNumber type。所以你可以從基線設置多少。