我有UITableView
。在我的tableview中,我想动态地将另一个视图添加到我的单元格中并扩展单元格高度。我看过一些例子,但那些是UILabels
。 UILabels可以根据文本高度更改高度。但是,如何手动添加另一个视图并展开这些单元格呢?
请帮帮我 感谢
答案 0 :(得分:0)
如果你使用手动计算单元格高度,它很容易,在你添加另一个视图后,你计算高度,然后调用reloadData或reloadRowsAtIndexPaths,并在tableview:heightForRowAtIndexPath函数中返回高度。 如果你使用自动计算单元格高度。你应该让系统知道如何计算,你应该清楚而完整地设置自动布局。你应该添加另一个视图的左,右,上,下约束,系统将自动计算高度。细胞将被扩大。
答案 1 :(得分:0)
您可以通过覆盖func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
答案 2 :(得分:0)
实现这两个UITableViewDelegate方法:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
// return estimatedHeight
}
动态单元格中的视图需要具有顶部,底部,尾随,前导和高度约束。设置视图高度约束常量将根据视图高度设置单元格高度。
您可以在动态单元格中拥有视图高度约束属性:
@IBOutlet weak var customViewHeightConstraint: NSLayoutConstraint!
可以在cellForRowAt中更改约束常量值:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CellId", for: indexPath) as! Cell
switch indexPath.row {
case 0:
cell.customViewHeightConstraint.constant = 100
case 1:
cell.customViewHeightConstraint.constant = 200
case 2:
cell.customViewHeightConstraint.constant = 300
case 3:
cell.customViewHeightConstraint.constant = 400
default:
cell.customViewHeightConstraint.constant = 100
}
return cell
}