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

时间:2014-02-21 19:59:39

标签: ios uitableview resize uilabel

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

UILabel的大小调整完美,但UILabel没有正确显示它的内容。内容包含在1或2行中,即使它在It的框架中有空格。

但是如果我滚动UITableView并返回到那些单元格,一切都会完美显示。

我希望单元格从头开始正确显示而不滚动。

以下是滚动之前和之后的一些屏幕截图: UILabels (in blue) before scrolling

UILabel (in blue) after scrolling

以下是我用来调整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);

1 个答案:

答案 0 :(得分:2)

我通过在“cellForRowAtIndexPath”中以编程方式创建UILabel来解决问题,正如此主题中所建议的那样:UILabel in a UITableViewCell With Dynamic Height

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