我对“重新发送?”有疑问Textview上的文字换行

时间:2019-01-29 17:08:42

标签: ios swift wrapping

“我有一个标签,文字是”不收到验证码?重新发送?”,这里我正在使用自动换行。但是在取消自动换行的同时,在下一行显示“发送?”时,我总是需要始终将“重新发送?”一起放在“?”之后(不接收)。验证码?重新发送?)或在下一行中显示为“重新发送?”,有人可以建议我如何解决此问题吗?”

如果我使用“重新发送”,那么它将是下一行,但是如果我使用“重新发送”,则该单词会分裂。

let attributeText = NSMutableAttributedString(string: "Don't you get 
verificationcode in your email Inbox? ", attributes: 
[NSAttributedString.Key.foregroundColor: UIColor.red, 
NSAttributedString.Key.font: UIFont.systemFont(ofSize: 
22),NSAttributedString.Key.paragraphStyle: style])


attributeText.append(NSAttributedString(string: " Re-Send ", 
attributes: [NSAttributedString.Key.foregroundColor: UIColor.green, 
NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 22)]))

let linkRange = attributeText.mutableString.range(of: " Re-Send ")
    attributeText.addAttribute(NSAttributedString.Key.link, value: 
linkKey, range: linkRange)


txtview.attributedText = attributeText
txtview.textContainer.lineBreakMode = NSLineBreakMode.byWordWrapping
txtview.textAlignment = .center 

我需要它是“您是否没有在电子邮件收件箱中获得验证码?重新发送?”或“您是否没有在电子邮件收件箱中获得验证码? 重发? “。(取决于我的屏幕长度)。

2 个答案:

答案 0 :(得分:0)

使用(U + 2011连续破折号)代替-(U + 002D减号)。

attributeText.append(NSAttributedString(string: " Re‑Send ", 

attributeText.append(NSAttributedString(string: " Re\u{2011}Send ", 

答案 1 :(得分:0)

let string  = "\u{2011}"
attributeText.append(NSAttributedString(string: " Re\(string)Send ", 
attributes: [NSAttributedString.Key.foregroundColor: UIColor.green, 
NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 22)]))
let linkRange = attributeText.mutableString.range(of: " Re\(string)Send ")
attributeText.addAttribute(NSAttributedString.Key.link, value: linkKey, range: 
linkRange)