2017-03-17 59 views
0

我正在使用UILabel來顯示文本。有時,它會在文本副本中創建孤兒和遺problem問題,文本對齊設置爲「對齊」,連字因子也設置爲1.0。如何刪除多行UILabel中的孤兒和寡婦,並對齊文本?

我該如何解決遺012 &孤兒問題?

我想用字母換行的連字符對齊文本,並希望刪除孤兒和寡婦。

我已經將標籤屬性設置爲標籤,標籤的大小根據設備寬度進行設置。

image

這裏是屬性文本代碼:

let paragraphStyle = NSMutableParagraphStyle() 
    paragraphStyle.alignment = NSTextAlignment.Justified 
    paragraphStyle.hyphenationFactor = 1.0; 

let strTwo = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"; 

let attrlblTwo = NSAttributedString(string: strTwo, 
              attributes: [ 
               NSParagraphStyleAttributeName: paragraphStyle, 
               NSBaselineOffsetAttributeName: NSNumber(float: 0),NSKernAttributeName: 0, NSFontAttributeName : lblTwo.font 
     ]) 
    self.lblTwo.attributedText = attrlblTwo 
+0

這可能在iOS 11中發生了變化,因此完全沒有您的要求。我的問題是我需要孤兒,因爲我沒有理由,只有兩條短線看起來很愚蠢。 (請參閱https://stackoverflow.com/questions/46200027/uilabel-wrong-word-wrap-in-ios-11) –

回答

0

你有沒有試過這樣做,用故事板?我從之前的一個項目中體驗到了這一點,在故事板上有一個UILabel,將Text設置爲Atrributed並將連字符設置爲1適合我。測試了不同的段落長度和iOS設備。

+0

是的,我已經嘗試過與故事板之前。和我以編程方式做同樣的事情。 –

+0

@ DB_2016你有沒有試過這個帖子? http://stackoverflow.com/questions/33228302/how-can-i-prevent-orphans-in-a-label-in-swift – Lysdexia

0

要擺脫孤兒,請將文本中的最後一個空格替換爲非空格。非破壞空格字符是U + 00A0。您可以通過從編輯菜單中選擇「Emoji & Symbols」找到它,單擊右上角的小部件將字符查看器展開爲完整大小,然後在搜索字段中鍵入空格。你會看到一些「缺失」字符,這些是空格字符。點擊它們直到找到「No-Break Space」,然後雙擊它將其插入到代碼中。 Character Viewer with Non Breaking Space highlighted