Xcode 6,iOS7 UITableViewCell UIlabel多行,自动布局

Xcode 6,iOS7 UITableViewCell UIlabel多行,自动布局,ios,objective-c,uitableview,autolayout,uilabel,Ios,Objective C,Uitableview,Autolayout,Uilabel,我正在使用多行UILabel为UITableViewCell进行自动布局。MyUILabel定位在顶部、右侧、底部和左侧。一切都很好,直到我增加了一些最高利润;如果我这样做,一些单元格高度计算得很好,而一些则没有,因此在这些情况下文本会被截断 我简化了我的观点,因为它有点复杂。看起来是这样的: 这是我计算单元格高度的相关代码: CellMessage *cell = self.prototypeCell; cell.message = [self messageForRowAtIndexPa

我正在使用多行
UILabel
UITableViewCell
进行自动布局。My
UILabel
定位在顶部、右侧、底部和左侧。一切都很好,直到我增加了一些最高利润;如果我这样做,一些单元格高度计算得很好,而一些则没有,因此在这些情况下文本会被截断

我简化了我的观点,因为它有点复杂。看起来是这样的:

这是我计算单元格高度的相关代码:

CellMessage *cell = self.prototypeCell;
cell.message = [self messageForRowAtIndexPath:indexPath];
[self.prototypeCell layoutIfNeeded];

CGSize size = [self.prototypeCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
    message.cellHeight = size.height + 1;
我读过很多sof线程和教程,它们在细微之处都有所不同,有时他们说设置首选的最大宽度是关键,我尝试设置和不设置它,但我得到了相同的结果,但我仍然不完全理解此参数的工作原理:(


我错过了什么/做错了什么?我可以尝试的任何东西,或者任何指向正确方向的提示都将不胜感激。

所以,不久前我也遇到了类似的问题。 我是这样计算出来的(在swift上):

这将使用文本数据计算大小。 但您还有一个问题,要正确计算文本,您需要使用约束来确定宽度,它不能是尾随/前导的,它需要是宽度约束,因此在UITableViewCell自定义类中,您可以执行以下操作:

- (void)updateConstraints {
[super updateConstraints];
self.myLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.myLabel.frame);
}
标题标签是链接为属性的UILabel


顺便说一句,尝试将尾随改为常量,而不是>=/p>,所以不久前我遇到了类似的问题。 我是这样计算出来的(在swift上):

这将使用文本数据计算大小。 但您还有一个问题,要正确计算文本,您需要使用约束来确定宽度,它不能是尾随/前导的,它需要是宽度约束,因此在UITableViewCell自定义类中,您可以执行以下操作:

- (void)updateConstraints {
[super updateConstraints];
self.myLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.myLabel.frame);
}
标题标签是链接为属性的UILabel



顺便说一句,尝试将拖尾设置为常量,而不是>=

是否尝试将拖尾约束设置为
=
?我想知道为什么要将拖尾空间设置为>=?如果要扩展单元格,请尝试使用拖尾空间=并将压缩阻力优先级设置为高于默认值(即751)谢谢你的评论。我设置了
=
,因为如果文本很小,我需要
UILabel
缩小,因为真实视图有一个背景气球(想想whatsapp对话视图)。不管怎样,刚刚尝试了
=
,我也遇到了同样的问题。将压缩阻力优先级设置为大于尾随空间优先级如何?是否尝试将尾随约束设置为
=
?我想知道为什么要将尾随空间>=?如果要扩展单元格,请尝试使用tralling Space=并设置com感谢您的评论,抗压优先级高于默认值(即751)。我设置
=
,因为如果文本很小,我需要
UILabel
收缩,因为真实视图有一个背景气球(想想whatsapp对话视图).不管怎样,我刚试过
=
,我也遇到了同样的问题。将压缩阻力优先级设置为大于尾随空间优先级如何?你能用相同的语言回答OP程序吗?他用ObjC编写,即使它们很容易翻译,也最好在ObjC中使用。谢谢@RodolfoAnt这看起来很有希望,但我仍然有同样的问题:(我肯定错过了一些明显的东西。谢谢@Julian。至于我,在12个小时的努力之后(真的),只要它有效,任何语言都可以:)是的,你是对的,@ssantos。我必须承认,自动布局是一个真正的婊子,特别是在处理表视图时。我也有同样的挣扎,不再对这一行使用自动布局。只是更改了语言,希望能有所帮助。你在哪里设置标签文本?你能用OP程序使用的相同语言回答吗?他写道虽然它们很容易翻译,但最好也用ObjC。谢谢@Rodolfoantici。它看起来很有希望,但我仍然有同样的问题:(我肯定错过了一些明显的东西。谢谢@Julian。至于我,在与它斗争了12个小时后(真的),只要它有效,任何语言都可以:)是的,你是对的,@ssantos。我必须承认,自动布局是一个真正的婊子,尤其是在处理表视图时。我也有同样的困难,不再对这一行使用自动布局。只是更改了语言,希望它能帮到你。你在哪里设置标签文本?