簡體   English   中英

UILabel換行在iOS 11上為時過早

[英]UILabel line breaks too early on iOS 11

我有一個帶有單元格表格的iOS 11應用程序。

在此單元格中,我有一個UILabel。

UILabel似乎“決定”以使底線至少包含2個單詞的方式來斷行(無論BreakLineMode是什么!)。

我知道使用-添加不間斷空格(U + 00A0)-過於昂貴

在NSUserDefaults上使用NSAllowsDefaultLineBreakStrategy NO-APPLE不允許

我該怎么做才能解決此問題?

在此圖像中,您可以看到第二行中的第一個單詞可能出現在第一行中,但由於某種原因而下降到第二行...

在此處輸入圖片說明

編輯:

這不是寬度問題,這是iOS 11 NEW UILabel邏輯(!)的問題,該邏輯不允許換行上的孤立單詞(一個單詞),只有兩個單詞,因為他們認為它看起來更好。 沒有。 但是必須有一種方法可以使UILabel在iOS 11上起作用,就像在iOS 10及更低版本上一樣。

您可以添加以下三行代碼-

labelName.adjustsFontSizeToFitWidth = true
labelName.minimumScaleFactor = 0.3

labelName.numberOfLines = 0 // or you can set it 1 or 2

我發現了一個駭客-

在字符串的末尾添加很多空格(例如10-20)將使UILabel“認為”該行足夠長,因此將在底行留下一個單詞。 (而不是2,因此第一行不會提前中斷)

我不喜歡黑客,但這是我目前所擁有的,如果有人有不同的答案,我會很樂意接受它而不是這個答案。

就我而言,我能夠通過使用textview解決此問題。 UITextView允許孤兒,如果禁用了滾動,則根據內部大小來調整大小;如果禁用了交互,則其工作方式類似於label;在label中也禁用了該行為,因此它將轉發所有觸摸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM