【问题标题】:Automatically determining the size of a UITableViewCell自动确定 UITableViewCell 的大小
【发布时间】:2010-04-04 22:02:49
【问题描述】:

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

该单元格包含一个应该填满整个单元格的子视图。知道我在UITableViewCellinit 方法中这样做:

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?

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

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

    -(CGRect) cellFrameForTableView:(UITableView *)inTable {
      CGRect result = [inTable frame];
    
      result.origin = CGPointZero;
      result.size.height = [inTable rowHeight];
    
      return result;
    }
    

    如果您希望自动调整视图大小以为单元格额外内容(如附件视图)留出空间,请将您的自定义视图添加到单元格内容,而不是单元格。在这种情况下,诸如编辑控件之类的东西会随着内容视图一起调整您的自定义视图。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      相关资源
      最近更新 更多