ios - UILabel 换行在 iOS 11 上过早

标签 ios iphone uilabel

我有一个带有单元格表格的 iOS 11 应用程序。

在这个单元格中,我有一个 UILabel。

UILabel 似乎“决定”以一种至少包含 2 个单词的底线(无论 BreakLineMode 是什么!)的方式换行。

我知道使用 - 添加不间断空格 (U+00A0) - 太贵了

在 NSUserDefaults 上使用 NSAllowsDefaultLineBreakStrategy NO - 苹果不允许

我该怎么做才能解决这个问题?

在此图像中,您可以看到第二行中的第一个单词可能出现在第一行但由于某种原因下降到第二行...

enter image description here

编辑:

这不是宽度问题,这是 iOS 11 新 UILabel 逻辑 (!) 的一个问题,它不允许在新行上出现孤儿词(一个词),只有两个词,因为他们认为这样看起来更好。它没有。但是必须有一种方法可以使 UILabel 在 iOS 11 上像在 iOS 10 及以下版本上一样运行。

最佳答案

我发现了一个黑客 -

在字符串末尾添加大量空格(如 10 - 20)将使 UILabel“认为”该行足够长,因此它会在底行留下一个词。 (而不是 2,所以第一行不会提前中断)

我不喜欢 hack,但这就是我目前的全部,如果有人有不同的答案,我会很乐意接受它而不是这个

关于ios - UILabel 换行在 iOS 11 上过早,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751185/

相关文章:

ios - 需要帮助使用 AFnetworking 异步下载文件取得进展

iphone - 在 Objective C 中如何从字符串中获取对象?

Iphone 4 MFmailcomposeviewcontroller 崩溃

ios - 当您滚动时会改变的单个静态标题

ios - fatal error : unexpectedly found nil while unwrapping an Optional value when assigning a value from an array to a UILabel

ios - 核心数据在 swift 中匹配日期

ios - iOS 7 中与 AutoLayout 相关的崩溃 : "_UIPageViewControllerContentView' s implementation of -layoutSubviews needs to call super. "

ios - 带有 float 单元格的 UITableView

iphone - 使用 CoreText 显示 NSAttributedString

iPhone:如何确定 UIImage 区域的平均明暗度