Html 标签中属性文本的固有大小不正确

Html 标签中属性文本的固有大小不正确,html,ios,autolayout,uilabel,nsattributedstring,Html,Ios,Autolayout,Uilabel,Nsattributedstring,我对标签中的属性文本有问题,它占用了底部很大的空间。当我使用“非属性”时,大小是可以的,但现在我总是底部空间-在图像上标记为粉红色。我尝试在Reveal.app中更改高度约束(由iOS生成)的值,当我使其比实际值小一点时,文本被截断 我需要属性标签,因为我正在从HTML字符串创建属性: <p style=\"font-family: EncodeSans-Thin; font-size: 10.0; color: #1f2e3b;\"> Od 2004 roku wspier

我对标签中的属性文本有问题,它占用了底部很大的空间。当我使用“非属性”时,大小是可以的,但现在我总是底部空间-在图像上标记为粉红色。我尝试在Reveal.app中更改高度约束(由iOS生成)的值,当我使其比实际值小一点时,文本被截断

我需要属性标签,因为我正在从HTML字符串创建属性:

<p style=\"font-family: EncodeSans-Thin; font-size: 10.0; color: #1f2e3b;\">
    Od 2004 roku wspieramy organizacje biznesowe w rozwoju sztuki zarządzania projektami. 
    Nasza działalność opiera się na trzech filarach – 
    <span style=\"font-family: EncodeSans-Light\">
        doradztwie, realizacji projektów na zlecenie oraz szkoleniach.
    </span>
</p>

我以前肯定有过。我发现一旦在标签上设置了文本,就必须使用

label.attributedText = foo;
[label setNeedsLayout]; // this line normally isn't required
[label layoutIfNeeded];
这会将标签调整为正确的大小。否则,我不能完全确定自动布局约束是如何设置的,但您可以手动计算标签的新高度,并在此基础上设置其高度约束。但这通常是不必要的


最后,文本末尾可能有尾随空格。如果不需要,请确保将其移除

我发现从
HTML
内容中删除
标记可以修复大小调整。这让我认为是
sizeToFit
方法在处理从
HTML
创建的属性字符串中的段落时无法正确计算大小


我知道这不是最好的解决方案,但也许您可以用

替换
标记。这是迄今为止我找到的唯一一个修复方法。

这是因为
标记在末尾固有地添加了新行。一种方法是使用
,这样就不会添加新行了

,这是我的第一个猜测。但没有效果。我一直在尝试:label.setNeedsUpdateConstraints()label.updateConstraintsIfNeeded()label.setNeedsLayout()label.layoutIfNeeded()self.view.setNeedsLayout()self.view.layoutIfNeeded(),你肯定没有尾随空格吗?我没有空格。高度约束是由autolayout生成的,我没有手动设置。呈现的整个代码就是我发布的html。我的猜测是,从html字符串生成属性文本的函数可能做得不好。问题更新了。这就是我所说的约束。一旦你在代码中设置了文本,你就可以要求标签提供新的大小,并将其设置为你作为出口的约束。我现在遇到了类似的问题。。。我最担心的是,当涉及到将nsattributedstring与uilabels一起使用时,如果您更改行高度等,AutoLayout会出现问题。。。我必须设法解决这个问题。任何人
label.attributedText = foo;
[label setNeedsLayout]; // this line normally isn't required
[label layoutIfNeeded];