Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 即使文本只有一行,多行UILabel高度也会增加_Ios_Objective C_Uilabel - Fatal编程技术网

Ios 即使文本只有一行,多行UILabel高度也会增加

Ios 即使文本只有一行,多行UILabel高度也会增加,ios,objective-c,uilabel,Ios,Objective C,Uilabel,我正在tableViewCell中使用UILabel。有些单元格的文本是一行,有些是两行。我已经设置了从superview约束到标签的尾随空间、前导空间和顶部空间。以下是设置: 直线=0 换行:换行(也尝试了其他选项) 如果文本跨越特定长度,出于某种原因,标签高度似乎已增加,以容纳2行,尽管文本仅为一行。如下所示(参考背景为红色): 例如,在第一行中,实际文本为一行,但与其他行相比,高度增加 有什么原因会发生这样的事情吗?我没有在代码的任何地方设置高度 编辑 此外,我还使用以下方法在整个应

我正在
tableViewCell
中使用
UILabel
。有些单元格的文本是一行,有些是两行。我已经设置了从superview约束到标签的尾随空间、前导空间和顶部空间。以下是设置:

  • 直线=0
  • 换行:换行(也尝试了其他选项)
如果文本跨越特定长度,出于某种原因,标签高度似乎已增加,以容纳2行,尽管文本仅为一行。如下所示(参考背景为红色):

例如,在第一行中,实际文本为一行,但与其他行相比,高度增加

有什么原因会发生这样的事情吗?我没有在代码的任何地方设置高度

编辑

此外,我还使用以下方法在整个应用程序中为UILabel设置了自定义字体:

[[UILabel appearance] setFont:myFont];
我不确定这是否会引起任何问题

此外,约束集的屏幕截图为:


我知道这很奇怪,我以前也遇到过同样的问题,这是因为我在没有太多知识的情况下设置了内容优先权。我通过移除标签并再次添加解决了这个问题。试试看。

也遇到了同样的问题。 在检查内容后,拥抱优先级得到了相同的结果。 最后发现这是由标签配置中的度量选项卡中的标签首选宽度设置为显式引起的


未选中并已解决=)

我在使用
NSAttributedString
时遇到此问题,但同时使用了
NSMutableParagraphStyle的
行间距
属性。我完全以编程方式使用自动布局,并将
numberOfLines
设置为
0
。在我想要添加行距之前,多行文字一直工作正常,但在那个时候我遇到了这个问题。调整内容拥抱和压缩阻力对我没有任何帮助,使用
UILabel
preferredMaxLayoutWidth
属性也没有任何帮助(我目前不知道)

NSRange
应用到我的文本字符串中的确切字符数时的修复方法:

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = spacing;
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, label.text.length)];

label.attributedText = attributedString;

从这个答案中可以看出:。

如何定义单元格的大小约束?似乎也设置了底部空间约束,如果是这种情况,那么jst将删除此底部空间约束,如果您共享该约束,效果会更好screeshot@ZAZ.. 不,没有设置底部约束。@Antzi:我没有为单元格设置任何大小约束。您的
UILabel
适应填充可用空间(由于没有标签,例如
原始食物选择
),如果其中一个标签是空的,您必须决定不含糊的规则来设置正确的大小(可能为两个标签设置最小尺寸?)