我想在UILabel
上添加换行符。在使用\n
的故事板上根本不起作用。
这是一个例子。
在StoryBoard上我创建了2 UILabel
并将其内容设置在专用字段中:
Label 1\nhello
,其中\n
由ALT + RETURN Label 2\nhello
带有明确的\n
然后我添加了第三个标签并在控制器上配置它,而不是在Story Board上配置:
label3.numberOfLines = 0 label3.text =" Label3 \ nhello"
这是一个全新的项目,在Xcode 8上。语言是Swift 3.1,而AutoLayout是关闭的。因此,不得有任何外部库的任何干扰,也不得有AutoLayout。
这是渲染。
UILabel
行为是不一样的,这真的很令人不安。当然,当你面对并解决了这个问题时,一切似乎都是明确的,因为答案是众所周知的。
使用UITextView
代替UILabel
可以轻松解决此问题。至于现在,直到我更喜欢使用UITextView
在多行上显示简单文本,尽管UILabel
必须为此目的而工作。
答案 0 :(得分:5)
在UILabels中你根本无法使用
\ n
你必须使用
Alt + Enter
转到下一行。
答案 1 :(得分:1)
回车符(\ n)与字符\ n之间存在差异。单数字符\ n是回车符,正如您所看到的那样分割线。然而这两个角色\& n只代表两个不同的角色。
在Interface Builder中执行故事板时,输入UILabel的字符都被计为单个字符,因此如果键入\ n,则实际输入字符'\'和字符'n'。要输入特殊的单回车字符(\ n),您必须使用ALT + RETURN。
现在在代码中你可以更灵活。输入类似“Line1 \ nLine2”的文本时,\ n被视为单个回车符,因此输入字符'\'和& 'n'彼此相邻,你必须使用“Line1 \ nLine2”(双\表示单个'\'字符)。
因此,当它工作时,您将获得字符串中的单个回车字符(\ n),当它没有时,您将获得两个单独的字符。
你没有提到\ n如何在它不起作用时添加(在故事板之外),但它必须作为两个单独的字符添加到字符串中。
举个例子:
let str1 = "12345\n67890
let str2 = "12345\\n67890
print (str1.characters.count) // prints 11
print (str2.characters.count) // prints 12
答案 2 :(得分:0)
在 UILabels 中你根本不能使用
<块引用>\n
你必须使用
<块引用>Option + Enter
转到下一行。