2009-05-23 45 views
23

在iPhone上,当它显示某个辅助视图(披露指示符等)时,如何计算表格视图单元格内容视图的宽度?UITableViewCell的contentView的宽度与给定的附件类型

我需要这个以便为包含可变长度文本包装的单元格计算正确的单元格高度。但是,当表视图委托需要单元格高度时,它实际上并没有实际的单元实例,所以它不能直接查询内容视图边界。

我可以很容易地硬编码一个20像素的边缘在右边看起来是正确的样式表视图纵向方向与披露指标,但宁愿做正确的方式,以便它保持如果苹果决定调整利润率的话就会工作。

(这与this question。)

回答

2

就个人而言,我只是硬编码值 - 更简单,事情将以可预测的方式破坏。

但是,我是以编程的方式做到这一点,我会创建一个UITableViewCell,设置您需要测量的编辑属性/附件视图,然后询问它的contentView有多大。

当然,我可能会大量缓存这个 - 当要求UITableView询问你的高度信息对我来说听起来像它会很慢(尽管如此,首先检查一个探查器),做分配。

0

我会的UITableViewCell的子类,持有其所有子元素。当单元格进入并存在编辑模式时,您可以插入某些元素的框架。 Apple创建自定义表格视图单元一节的Table View Programming guide中有一个很好的例子。

0

我相信UITableViewCell的contentView属性是包含你的标签等的视图,所以它的宽度应该是你可用的大小。

+0

问题是表视图委托需要知道不可见的单元格高度,因此没有实际的单元实例从中获取contentView。我想我可以得到_a_可见单元格的contentView,并假设所有其他单元格将具有相同的contentView宽度。 – 2009-05-24 16:32:01

+0

你可以尝试从委托中删除高度方法,然后在设置单元格时使用UITableView – 2009-05-25 03:01:37