0

在 iOS6 中,我似乎无法在 cellForRowAtIndexPath 中获取分组表格样式的单元格宽度。记录单元格或其内容视图的框架或边界返回 320 - 即使在 iPad 上也是如此。我需要以编程方式确定任何设备的单元格宽度,因为我需要计算文本大小。任何有关为 cellForRowAtIndexpath 中的分组表视图获取正确单元格宽度的建议都将不胜感激

4

1 回答 1

2

您使用的方法是计算任何与视图相关的约束的错误位置。该-tableView:cellForRowAtIndexPath:方法是表视图数据源的一部分,而不是它的委托。您不能依赖框架或此处的其他任何东西来有意义,它意味着配置单元格的 /data/ 的地方。

如果您需要对视图框架等进行计算,并且您没有使用自定义子类UITableViewCell(即,您只是将视图添加到默认实例UITableViewCell或配置库存视图),您将设置任何与框架相关的/ 查看 /delegate/ 回调-tableView:willDisplayCell:forRowAtIndexPath:方法中的特定属性。这是配置单元格的任何可见/视图相关属性的地方,您现在将获得单元格的准确布局信息(其边界将正确,内部视图的任何布局/配置都将完成,等等。 )。

如果您已经有一个自定义子类,您可以在上面的委托回调中进行与视图相关的属性配置,也可以在UIView's-layoutSubviews方法中进行,具体取决于您的具体需求。有关详细信息,请参阅-tableView:willDisplayCell:forRowAtIndexPath:的文档。

于 2012-10-13T06:58:15.470 回答