在iOS6中,我似乎无法获得cellForRowAtIndexPath中分组表格样式的单元格宽度。记录单元格或其内容视图的框架或边界返回320 - 即使在iPad上也是如此。我需要以编程方式确定任何设备的单元格宽度,因为我需要计算文本大小。在cellForRowAtIndexpath获取分组tableview的正确单元格宽度的任何建议都将不胜感激
答案 0 :(得分:2)
您正在使用的方法是计算任何类型的视图相关约束的错误位置。 -tableView:cellForRowAtIndexPath:
方法是表视图的数据源的一部分,而不是其委托。你不能依赖这里的框架或其他任何有意义的东西,它意味着配置单元格/ data /的地方。
如果您需要进行计算以查看框架等,并且您没有使用UITableViewCell
的自定义子类(即,您只是将视图添加到UITableViewCell
的默认实例或配置库存视图),您可以在/ delegate / callback -tableView:willDisplayCell:forRowAtIndexPath:
方法中设置任何与帧相关/视图特定的属性。这是配置单元格的任何可见/视图相关属性的地方,现在您将获得单元格的准确布局信息(其边界将是正确的,内部视图的任何布局/配置都将完成,等等。 )。
如果您已经拥有自定义子类,则可以在上面的委托回调中执行与视图相关的属性配置,也可以使用UIView
的{{1}}方法执行此操作,具体取决于您的具体情况需要。有关详细信息,请参阅-tableView:willDisplayCell:forRowAtIndexPath:的文档。