多行文本換行時,通常要求結尾若是是標點符號,標點符號不能單獨佔一行,須要將上一行的最後一個文字將和標點符號一塊兒放在下一行。
設置 lineBreakMode = .byWordWrapping,按單詞分割換行。html
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不會。swift
Text Programming Guide for iOS 上面提示到:app
UILabel
定義標籤,顯示靜態文本字符串UITextField
定義一個文本字段,顯示一行可編輯文本。UITextView
定義文本視圖,顯示多行可編輯文本。 雖然這些類實際上能夠支持任意數量的文本的顯示,但標籤和文本字段旨在用於相對少許的文本,一般是單行。另外一方面,文本視圖旨在顯示大量文本。
從UITextView
類建立的文本視圖對象,顯示格式爲段落,列和頁面的文本,具備精細排版的全部特徵,例如字距調整,連字,複雜的換行和對齊ide
因此若是想顯示多行大量文本,建議使用UITextView,可以得到更好的排版佈局
佈局