我正在使用UILaber以非常大的字體(大小爲240)顯示第二個倒計時。顯示的字符串格式爲「xxx.xx」,x的字符爲0-9。我想將文本與標籤中顯示的字符串中的點符號(。)對齊。我在標籤中使用textAlignment作爲.Center,但某些字符串在實際顯示的長度上有所不同,導致點字符在字符串更新時左右移動。 F.X. 「1」的textContainer小於「8」。將UILabel文本與特定字符對齊
是否有可能做這種字符對齊?
我正在使用UILaber以非常大的字體(大小爲240)顯示第二個倒計時。顯示的字符串格式爲「xxx.xx」,x的字符爲0-9。我想將文本與標籤中顯示的字符串中的點符號(。)對齊。我在標籤中使用textAlignment作爲.Center,但某些字符串在實際顯示的長度上有所不同,導致點字符在字符串更新時左右移動。 F.X. 「1」的textContainer小於「8」。將UILabel文本與特定字符對齊
是否有可能做這種字符對齊?
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。所以你可以從基線設置多少。
這並不回答你的問題,但這是一個替代方案。使用兩個標籤,一個用於三位整數數字,另一個用於兩個小數位。在兩個標籤之間放置一個點的圖像(或者您想要製作點)。然後,您可以垂直對齊這些點,將這些點左側的整個數字標籤右對齊,然後左對齊這些點右側的分數標籤。 – keithbhunter