【发布时间】:2010-12-04 08:34:09
【问题描述】:
我有一个自定义表格单元格,其中包含许多 UILabel。在运行时,我使用sizeWithFont:constrainedToSize:lineBreakMode: 调整标签的高度以适应其内容并相应地重新定位它们。单元格中的最后一个标签包含大量文本,导致它换行,我遇到了一个非常奇怪的问题。尽管sizeWithFont 调用返回了正确的大小,并且我将UILabel 的框架设置为该高度,但它会缩短几行。这张截图说明了我在说什么:
在此示例中,整个文本块的高度应为 90(在 Interface Builder 中检查),这就是从 sizeWithFont 返回的内容。这也是 UILabel 框架设置的高度,我已经通过记录以及停止执行和检查值来验证。但是,如您所见,它显然 没有 绘制了完整的 90 像素高,尽管它为它正确分配了空间(“已编辑”上方的细黑线是表格单元格边框)。我完全困惑了。如果有人能提供一些关于它为什么会这样表现的见解,我将非常感激。
【问题讨论】:
-
在same topic 上查看我的回答。
-
这个答案很好地概述了我已经在做的所有事情:-)
-
进度:这是因为 IB 中设置的单元格高度高于 heightForRowAtIndexPath 返回的实际高度。当单元格被碾压时,最底部的 UILabel 似乎也发生了一些剪裁。
标签: iphone