UITableView没有显示在UIStackView内部
我有一个UIStackView
可以根据用户选择显示标签,图像,表格视图或不显示任何内容的地方。这是我当前的动态视图层次结构:
- UIStackView_Parent
- UILabel-一些文本,固定视图
- UIStackView_Child-这是可以显示多个内容或不显示任何内容的容器
- UIView-另一个固定视图
当我UIStackView_Child.addArrangedSubview(...)
用标签或图像打电话时,它可以正常工作,但addArrangedSubview(tableView)
不显示表格。我已经tableView.scrollEnabled
= false根据单元格的数量将框架设置为固定高度,并定义了表格的cellHeight
。
任何帮助将不胜感激,谢谢!
回答:
那是因为stackview尝试尽可能多地压缩内容。当您最初添加一个表视图时,我假设它没有内容,所以stackview会将宽度压缩为0,因为它没有内容可显示。您必须执行以下两项操作之一:
在表格中填充数据后,您必须设置tableView的框架。我通过计算每个单元的大小来做到这一点。我知道宽度将和包含stackview的视图一样大。所以最终像是
let estimatedHeight = tableView.numberOfRows(inSection: 0) //You may need to modify as necessarylet width = parentView.frame.size.width
tableView.frame = CGRect(x: 0, y: 0, width: width, height: estimatedHeight)
设置tableView的框架后,stackview应该会自动调整。
以上是 UITableView没有显示在UIStackView内部 的全部内容, 来源链接: utcz.com/qa/414024.html