我的UILabel有一个很长的文本(不同情况和语言的文本不同,我使用AttributedString),它以金额结束。 Smth喜欢:
This amount will be taken from your account: 12.00 $
Label的numberOfLines = 0,因此有时文字看起来像
This amount will be taken from your account: 12.00
$
在12.00和$之间设置换行非常重要,因为它看起来很糟糕。有什么特别的符号吗
html中
,所以我可以把它放在12.00和$之间?所以UILabel永远不会在12和$之间打破?
所以我想要的是:
This amount will be taken from your account:
12.00 $
或
This amount will be taken from your account: 12.00 $
或
This amount will be taken from
your account: 12.00 $
但它永远不应该像
This amount will be taken from your account: 12.00
$
答案 0 :(得分:4)
是否有像html中的特殊符号,所以我可以把它 介于12.00和$?之间
对于这种情况,您可以使用nobreak空格字符\u00a0
示例:强>
let text = "This amount will be taken from your account: 12.00\u{00a0}$"
答案 1 :(得分:0)
您可以添加非破坏性的unicode空格字符,但是,您正在做的是错误的。
您应该使用NSNumberFormatter
,其样式设置为.currency
,currencyCode
设置为USD
。
那会给你:
$12.00
,英语为负数$(12.00)
,欧洲语言区为12.00 US$
。答案 2 :(得分:0)
请注意,我标记为重复的问题。
正如duplicated question中所述,您需要使用"No-Break Space" unicode character "\u00a0"。
我想建议您使用NumberFormatter来处理货币字符,类似于:
let formatter = NumberFormatter()
formatter.numberStyle = .currency
if let amount = formatter.string(from: 12.0 as NSNumber) {
print(amount) // $12.00
}
答案 3 :(得分:-1)
因此,请确保您没有在标签上设置高度限制,并执行此操作。
var value = 12.00
yourLabel.numberOfLines = 0
yourLabel.text = "This amount will be taken from your account: \n \(value) $"