Swift:表格视图中的动态单元格

时间:2017-09-18 08:08:14

标签: swift uitableview tableview height cell

我正在尝试使表格视图的高度为单元格=单元格的内容。

我在viewDidLoad()

中实现了这两行
tableView.estimatedRowHeight = 200.0
tableView.rowHeight = UITableViewAutomaticDimension

and here are the constraints in the cell

然而,细胞正在改变它的高度!

4 个答案:

答案 0 :(得分:1)

默认情况下,TextView不会展开以适应整个文本,因为它具有滚动功能,您可以在textView中禁用滚动功能。

选择textView,然后在Attributes Inspector选项卡中向下滚动并取消选中“Scrolling Enabled”

答案 1 :(得分:0)

尝试使用heightForRowAt索引路径

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {return UITableViewAutomaticDimension}

+

    override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

答案 2 :(得分:0)

在我看来,您的问题可能是layoutSubviews的高度没有明确说明。

,文本视图的自然行为并不高。

我建议在界面构建器中添加一个高度约束,将其连接到插座,然后在单元@IBOutlet var textViewHeightConstraint: NSLayoutConstraint! func layoutSubviews() { super.layoutSubviews() let fixedWidth = textView.frame.size.width textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude)) let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude)) textViewHeightConstraint.constant = newSize.height } 函数内计算高度,如下所示:

{{1}}

答案 3 :(得分:0)

在ViewDidLoad

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 200

将你的标题标签和文字标签(替换文字视图)放在UIView中。并给予UIView约束 1.尾随,前导,底部和顶部空间为ZERO
2.将固定高度设为200并将关系更改为大于或等于(> =)


然后将约束赋予标题标签
1.尾随,领先和顶部空间为ZERO
2.给出固定的高度为20(您的选择)

将约束赋予文本标签
1.尾随,前导,底部和顶部空间为ZERO
2.将固定高度设为180并将关系改为大于或等于(> =)