Iphone 自动确定UITableViewCell的大小

Iphone 自动确定UITableViewCell的大小,iphone,objective-c,Iphone,Objective C,我正在尝试确定UITableCellView的大小。原因是我使用一个类来处理不同的方向和设备 单元包含一个子视图,该子视图应填充整个单元。我知道我是在UITableViewCell的init方法中执行此操作的: if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ //iPad subv = [[OrbitView alloc] initWithFrame:CGRectMake(52, 5, 660, 420)

我正在尝试确定UITableCellView的大小。原因是我使用一个类来处理不同的方向和设备

单元包含一个子视图,该子视图应填充整个单元。我知道我是在
UITableViewCell
init
方法中执行此操作的:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
     //iPad
     subv = [[OrbitView alloc] initWithFrame:CGRectMake(52, 5, 660, 420) ];
}else{
     //iPhone
     subv = [[OrbitView alloc] initWithFrame:CGRectMake(15, 5, 290, 200) ];
}

显然,必须有更好的方法来做到这一点,没有神奇的数字。如何/在何处设置UITableViewCell中的子视图框架,使其填充整个UITableViewCell?

使用单元格将进入的表视图的维度。将autoresizingMask设置为“灵活宽度”,以处理旋转和附件视图。此代码假定您已经设置了表的行高,但是您可以使用屏幕高度的一小部分,而不是测试设备类型

-(CGRect) cellFrameForTableView:(UITableView *)inTable {
  CGRect result = [inTable frame];

  result.origin = CGPointZero;
  result.size.height = [inTable rowHeight];

  return result;
}
如果希望自动调整大小以调整视图,从而为单元格附加视图(如附件视图)留出空间,请将自定义视图添加到单元格内容,而不是单元格。在这种情况下,像编辑控件这样的操作将调整自定义视图和内容视图

在过去,我在单元格中使用灵活的高度视图时遇到了问题,所以我会使用灵活的底部边距