当我想要一个自定义单元格时,我通常UIView
会在单元格的内容视图中添加一个子类。对于我的子视图的布局,我使用笔尖。然后我将笔尖连接到我的UIView
子类。我的问题是如何动态调整内容大小。说我的观点有很多UILabels
内容。我layoutSubviews
用来定位所有子视图 - 但只有在完成之前我才真正知道我的单元格的高度。所以目前tableView:heightForRowAtIndexPath
我设置了我的子视图并调用layoutIfNeeded
,所以一切都正确定位。现在我知道我的单元格的高度并在tableView:heightForRowAtIndexPath
方法中返回它。但是现在什么时候tableView:cellForRowAtIndexPath
被称为给我的单元格的高度为44.0
. 当我将我的子视图添加到它时 - 我的子视图超出了其父视图的范围。然后,当稍后在 iOS 中将单元格调整到我说需要的高度时,我的内容会因为我的autoresizingMask
. 只是想弄清楚这是否是其他人处理的问题,或者我是否完全错误地接近它。我们要求高度似乎是倒退,然后创建一个不是那个高度的单元格。
问问题
1073 次
1 回答
2
不幸的是,这就是 UITableViews 的工作方式:您需要在实际呈现 UITableViewCells 之前提供高度。是的,每个人都必须处理它。:)
您可以创建一个 NSArray,添加所有自定义 contentView,frame
根据预期的 contentView 边界设置它们,然后将此数组用作tableView:heightForRowAtIndexPath:
和中的数据源tableView:cellForRowAtIndexPath:
。虽然这不是很有效,但它适用于小型数据集。
另外,这里有一个关于这个主题的很好的教程: UITableViewCell Dynamic Height (by Matt Long)
关于 SO 的类似问题: 如何在 iPhone 上正确执行可变高度表格单元格?
于 2012-05-04T00:23:24.140 回答