Ios 将UILabel文本与特定字符对齐
我使用的是一个UILaber,它以非常大的字体(240号)显示第二次倒计时。显示的字符串格式为“xxx.xx”,x为字符0-9。我想将文本与标签中显示的字符串中的点号(.)对齐。我在标签中使用textAlignment作为.Center,但有些字符串的实际显示长度不同,这导致在更新字符串时点字符左右移动。F.x.“1”的文本容器小于“8” 有可能进行这种角色联合吗Ios 将UILabel文本与特定字符对齐,ios,swift,uilabel,text-alignment,Ios,Swift,Uilabel,Text Alignment,我使用的是一个UILaber,它以非常大的字体(240号)显示第二次倒计时。显示的字符串格式为“xxx.xx”,x为字符0-9。我想将文本与标签中显示的字符串中的点号(.)对齐。我在标签中使用textAlignment作为.Center,但有些字符串的实际显示长度不同,这导致在更新字符串时点字符左右移动。F.x.“1”的文本容器小于“8” 有可能进行这种角色联合吗 有趣的问题伙伴: 请在下面找到解决方案: 基本上我在这里做的是: 使用故事板,我在水平堆栈视图中获得了3个垂直堆栈视图 只需将第二
有趣的问题伙伴: 请在下面找到解决方案: 基本上我在这里做的是:
baselineOffset是NSNumber类型。因此,您可以从基线设置您想要的值。这并不能回答您的问题,但这里有一个替代方案。使用两个标签,一个用于三个整数数字,一个用于两个分数数字。在两个标签之间放置一个点的图像(或按您希望的方式制作点)。然后可以垂直对齐点,右对齐点左侧的整数标签,左对齐点右侧的分数标签。
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