我有一个动态大小的uitableviewcell,有4个子视图。所以我的细胞看起来像这样:
|Image Label1 |
| Label2 |
| Label3 |
-------------------
Label2和Label3以及Image是静态大小的。在我用文字填充它们之前,我知道它们的大小。 Label1根据其文本内容动态调整大小。 Label1限制为3行文本,并启用了wordwrap换行模式。如果遵循以下步骤,则会出现此问题:
我正在使用[text sizeWithFont:label.font constrainedToSize:maxSize lineBreakMode:label.lineBreakMode]
来获取uilabel的大小。这发生在tableView:willDisplayCell:forRowAtIndexPath:
中。我还在Label1上使用以下autoresizemasks:UIViewAutoresizingFlexibleWidth| UIViewAutoresizingFlexibleHeight
。我正在计算单元格的框架,它是tableView:willDisplayCell:forRowAtIndexPath:
中的子视图,起初看起来这就是问题所在。但调试显示此方法返回Label1的正确帧。我猜测在设置框架并导致问题后,必须调整label1的大小?
此外,Label2和Label3具有以下自动调整大小:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin
。