自动确定 UITableViewCell 的大小
Posted
技术标签:
【中文标题】自动确定 UITableViewCell 的大小【英文标题】:Automatically determining the size of a UITableViewCell 【发布时间】:2010-04-04 22:02:49 【问题描述】:我正在尝试确定 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?
【问题讨论】:
【参考方案1】:使用单元格将进入的表格视图的尺寸。将 autoresizingMask 设置为灵活宽度以处理旋转和辅助视图。此代码假定您已设置表格的 rowHeight,但您可以使用屏幕高度的一小部分而不是测试设备类型。
-(CGRect) cellFrameForTableView:(UITableView *)inTable
CGRect result = [inTable frame];
result.origin = CGPointZero;
result.size.height = [inTable rowHeight];
return result;
如果您希望自动调整视图大小以为单元格额外内容(如附件视图)留出空间,请将您的自定义视图添加到单元格内容,而不是单元格。在这种情况下,诸如编辑控件之类的东西会随着内容视图一起调整您的自定义视图。
过去我在单元格中使用灵活的高度视图时遇到了麻烦,所以我会使用灵活的底部边距。
【讨论】:
以上是关于自动确定 UITableViewCell 的大小的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableViewCell 中自动调整 UITextField 的大小
如何让 UITableView 行高自动调整为 UITableViewCell 的大小?
自动调整 uitableviewcell 的大小 - SWIFT