Ios iPhone:如何获取xib中项目的大小?

Ios iPhone:如何获取xib中项目的大小?,ios,objective-c,iphone,uitableview,Ios,Objective C,Iphone,Uitableview,我从UITableViewCell作为MealItemDetailCell创建了一个自定义类 在它的xib中,我拖拽了一个UITableViewCell,然后将项目添加到单元格中。填充显示MealItemDetailCells的表格时,单元格底部都会被切掉,因为它们大于表格的默认高度 我知道在哪里可以使用heightforrowatinexpath并将其设置为足够大的值,但我可能希望编辑自定义单元格中的项目,然后此高度可能不合适。是否有任何方法可以通过编程方式从xib文件中检索TableView

我从
UITableViewCell
作为
MealItemDetailCell
创建了一个自定义类

在它的xib中,我拖拽了一个
UITableViewCell
,然后将项目添加到单元格中。填充显示
MealItemDetailCells
的表格时,单元格底部都会被切掉,因为它们大于表格的默认高度

我知道在哪里可以使用
heightforrowatinexpath
并将其设置为足够大的值,但我可能希望编辑自定义单元格中的项目,然后此高度可能不合适。是否有任何方法可以通过编程方式从xib文件中检索
TableViewCell
的高度

在控制器中,当我提供用于填充表格的单元格时,我尝试了
cell.frame.size.height
,但似乎返回了默认的单元格高度45
cell.window.size.height
为我提供了整个iPhone窗口

我当前的xib单元格为110高,在查看
MealItemDetailCell.xib
时单击
TableViewCell
时,从尺寸检查器可以看到

我希望一些属性是可读的,这样我就可以得到这个

我找了一会儿,但找不到任何靠近的东西。有什么想法或指导吗?谢谢


更新(以下回复Henry Hong):我在尺寸检查器中看到不同的值。“表格视图单元格”(顶部)部分下有“行高”值。然后在“视图”部分下的“高度”中有一个值(显示“框架矩形”下)。拖动xib的表格单元格边界时,“行高”不会改变,直到我取消选中并重新选中“自定义”复选框。尽管如此,只要再试一次,我发现在完成拖动时,两者都遵循实际的单元格大小!现在,但不是以前,使用递增的上/下箭头,我看到单元格轮廓按预期移动。但“行高”仍然保持不变。我确信这在某个地方有记录,但我想我只需要获得与实际/最终编辑的xib单元格高度匹配的“行高度”编号。

cell.frame.size.height应该能够从nib文件检索视图高度

只需确保您已经使用interface builder中的尺寸检查器为“行高”指定了一个值


或者它将返回默认高度。

在interface builder中单击tableview,然后在标尺部分将单元格高度设置为110,否则将得到标准高度44

希望有帮助!
干杯

我想您可以通过实现UITableViewDelegate方法来解决问题tableview:HeightForRowAtIndexPath:并返回单元格的高度,在您的情况下,该高度为110

干杯,
亚历山德罗

提供的大多数答案都涵盖了您的问题。据我所见,interface builder中的“行高度”只是一个方便的值,因为不允许通过数字直接编辑高度–只能通过拖动

Interface builder将此值作为“行高”写入xib数据结构:

<tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="10" shouldIndentWhileEditing="NO" rowHeight="65" id="3" customClass="PaperInfoCell">

然而,尽管自己解析了nib,但它似乎并没有写入实例的任何属性中——因此,消除双重簿记的唯一解决方案是实例化nib并从单元格框架中获取行高


作为补充说明,在使用iOS8、auto layout和UITableViewAutomaticDimension时,所有这些都不会带来太大的负担。

好吧,对于tableview,我没有.xib。我只是以编程方式实例化tableviewcontroller。所以,我不确定这是否适用。上面回答(此处空间不足)。但这假设我知道单元格的高度。我希望能够以图形方式编辑其xib中的单元格,并完成该操作。我不想从尺寸检查器框中直观地获取尺寸,然后将其键入heightforrowatinexpath的返回值中。这就是为什么我详细介绍了我对上述框和值的体验。