Ios UITableViewCell中调整大小的UILabel显示错误

Ios UITableViewCell中调整大小的UILabel显示错误,ios,uitableview,resize,uilabel,Ios,Uitableview,Resize,Uilabel,我有一个自定义UITableViewCell,它有一个动态高度的UILabel,具体取决于它的内容 UILabel的大小调整工作正常,但UILabel没有正确显示其内容。内容被包含到1或2行,即使它的框架中有空间 但是如果我滚动UITableView并返回这些单元格,所有内容都会完美显示 我希望单元格从一开始就正确显示,无需滚动 以下是滚动前后的一些屏幕截图: 以下是我用于调整UILAbel大小的代码: CGSize expectedLabelSize = [titleText sizeWi

我有一个自定义UITableViewCell,它有一个动态高度的UILabel,具体取决于它的内容

UILabel的大小调整工作正常,但UILabel没有正确显示其内容。内容被包含到1或2行,即使它的框架中有空间

但是如果我滚动UITableView并返回这些单元格,所有内容都会完美显示

我希望单元格从一开始就正确显示,无需滚动

以下是滚动前后的一些屏幕截图:

以下是我用于调整UILAbel大小的代码:

CGSize expectedLabelSize = [titleText sizeWithFont:titleLabel.font
                            constrainedToSize:maximumLabelSize
                                lineBreakMode:titleLabel.lineBreakMode];
CGRect newFrame = titleLabel.frame;
newFrame.origin.y = 10;
newFrame.size.height = expectedLabelSize.height;
titleLabel.frame = newFrame;
accumulatedY += (expectedLabelSize.height + PADDING);

expectedLabelSize = [empresatext sizeWithFont:empresaLabel.font
                                 constrainedToSize:maximumLabelSize
                                     lineBreakMode:empresaLabel.lineBreakMode];
newFrame = empresaLabel.frame;
newFrame.size.height = expectedLabelSize.height;
newFrame.origin.y = accumulatedY;
empresaLabel.frame = newFrame;
accumulatedY += (expectedLabelSize.height + PADDING);
我通过在“CellForRowatineXpath”中以编程方式创建UILabel“修复”了该问题,如本线程中所建议的:


仍然很好奇为什么这不适用于在InterfaceBuilder中创建的UILabel://

对于初学者,您应该使用
(CGRect)boundingrect with size:(CGSize)size选项:(NSStringDrawingOptions)options context:(NSStringDrawingContext*)context
,因为
sizeWithFont
已被弃用。另外,确保UILabel的行设置为0也不会有什么坏处。另外,请确保您正在计算
heightforrowatinexpath
中的单元格高度,你可以调整标签的大小,但如果单元格不知道内容的高度,标签就不适合。你到底在哪里调用你发布的代码?@JMarsh我在计算单元格高度,然后再计算所有内容。在视图控制器上init@reecon在CellForRowatineXpath中调用发布的代码,初始化单元格。