基本上,我有一个10个标签的单元格,目前我已经将其高度固定为300。但是,标签可能有值,也可能没有值,如果标签没有特定值,则需要隐藏它们。检查每个标签的空条件,然后同样地调整高度是冗长和混乱的。有没有其他方法可以达到我想要的目标?
ios - 如何调整自定义UITableViewCell的大小以适合内容?-LMLPHP

最佳答案

这是一个想法的例子,我会建议。我希望这能帮你找到一个最适合你的。
如果我假设,您的数据源如下:

// array of arrays of strings
var Array : [[String]] = [
     ["Label1", "Label2", "Label3", "Label4"],
     ["Label1", "Label2"],
     ["Label1", "Label2", "Label3", "Label4", "Label5", "Label6"],
]

这些方法可以实施:
func calculateExpectedHeight(withItemsCount: Int) -> CGFloat
{
    let titleHeight = 32.0 // this is e.g. your Layer Conf. label
    let itemHeight = 18.0 // this is for a label unit that is repeating

    return CGFloat(titleHeight) + CGFloat((Double(withItemsCount) * itemHeight)) + 12.0 //twelve is just for tuning
}

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    let dataForThisRow = Array[indexPath.row]
    return calculateExpectedHeight(withItemsCount: dataForThisRow.count)
}

关于ios - 如何调整自定义UITableViewCell的大小以适合内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39299880/

10-15 14:09