多行文本换行时,一般要求结尾如果是标点符号,标点符号不能单独占一行,需要将上一行的最后一个文字将和标点符号一起放在下一行。
设置 lineBreakMode = .byWordWrapping,按单词分割换行。label.lineBreakMode = .byWordWrapping label.text = "1我们是好人解决办法解决办法。" textView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0) textView.contentInsetAdjustmentBehavior = .never textView.textContainerInset = UIEdgeInsetsMake(0, -5, 0, -5) //textView.textContainer.lineBreakMode = .byCharWrapping 失效 textView.text = "1我们是好人解决办法解决办法。"
UILabel和UITextView同样宽度,设置同样文字,当结尾需要换行时,换行标准会有差异 UILabel如果结尾是一个单词,他会将这个单词和标点符号同时换行。 UITextView不会。
上面提示到:
-
定义标签,显示静态文本字符串
-
定义一个文本字段,显示一行可编辑文本。
-
定义文本视图,显示多行可编辑文本。
虽然这些类实际上可以支持任意数量的文本的显示,但标签和文本字段旨在用于相对少量的文本,通常是单行。另一方面,文本视图旨在显示大量文本。 从UITextView
类创建的文本视图对象,显示格式为段落,列和页面的文本,具有精细排版的所有特征,例如字距调整,连字,复杂的换行和对齐
所以如果想显示多行大量文本,建议使用UITextView,能够获得更好的排版布局