[英]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.