我正在构建一个在屏幕中央显示标签的应用程序,并且文本会根据用户在单独的表格视图中选择的单元格而变化。到目前为止,我主要在iPhone 7 Plus和较旧的设备上进行测试,但是现在有了iPhone Xs,我发现了一个令人讨厌的文本环绕问题。这是我对UILabel的IB设置:
UILabel应该具有3条可用的行。默认字体大小是150,但是考虑到我设置的最小字体比例,文本应该能够缩小到15。绝大多数可选文本输入均按预期工作,并且文本比例和换行符可以适当显示在1、2或3行上。像这样,有几个文本选项在单词的中间被截断(在此示例中,文本应占用2行,在'n'和'2'之间的空格处断开):>
烦人的部分是,此文本换行问题仅发生在iPhone X或更高型号上。 8 Plus或更早版本的任何电话都可以正确显示。我尝试弄乱了约束(标签的侧面是从安全区域插入20个点,并且顶部/底部分别贴在UIViews的上方和下方),但是到目前为止,没有任何成功。
在此先感谢您的帮助!
编辑:调整标签的高度(减少标签高度)似乎可以正确显示文本,但我希望尽可能保持高度不变。我仍然对为什么文本无法正确自动缩小并在空格处断行感到困惑。
答案 0 :(得分:0)
我在这里找到了解决方案:iOS UILabel autoshrink so word doesn't truncate to two lines
本质上,该函数确定字符串中最长单词的长度,并调整字体大小以容纳该单词。我需要解决的唯一另一件事是在调用函数之前将字体大小重置为原始大小,以便将具有较短单词的字符串从原始大小向下调整,而不是使用先前调整后的字符串的字体大小。>