UITableViewAutomaticDimension无法使用自定义XIB单元格

时间:2017-06-24 12:21:58

标签: ios swift uitableview

所以我创建了一个带有XIB文件的自定义单元格并添加了约束:Image。但是,UITextView不会根据其中的文本量自动调整其高度。

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

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

3 个答案:

答案 0 :(得分:0)

这可能会对你有所帮助

 override func viewDidLoad()
        {
            super.viewDidLoad()

           tableView.rowHeight = UITableViewAutomaticDimension
           tableView.estimatedRowHeight = 85
}

并确保禁用textview滚动并在自上而下的宽度hight中保持关系

此链接可能对您有所帮助 https://www.raywenderlich.com/129059/self-sizing-table-view-cells

答案 1 :(得分:0)

您有太多的垂直约束,因此它会修复textView的大小。您应该删除其中一个顶部约束,或者只使用stackview作为内容视图的唯一子项,并从内容视图中给出堆栈前导尾部(在这种情况下,您不需要任何其他约束)。 / p>

答案 2 :(得分:0)

请按照以下步骤操作:

  1. 为ImageView提供约束 - 使用contentview和Height Constraint的前导,尾随,顶部(如果你想修复其他高度)使用textview底部。

  2. 使用contentView为TextView - Leading,Trailing,bottom提供约束。

  3. 禁用textView的滚动。

  4. 在ViewDidLoad中添加以下行。

    tableView.rowHeight = UITableViewAutomaticDimension

    tableView.estimatedRowHeight = 44