我有一个UIStackView可以根据用户选择显示标签,图像,表格视图或不显示任何内容的地方。这是我当前的动态视图层次结构:
UIStackView
当我UIStackView_Child.addArrangedSubview(...)用标签或图像打电话时,它可以正常工作,但addArrangedSubview(tableView)不显示表格。我已经tableView.scrollEnabled = false根据单元格的数量将框架设置为固定高度,并定义了表格的cellHeight。
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 necessary let width = parentView.frame.size.width tableView.frame = CGRect(x: 0, y: 0, width: width, height: estimatedHeight)
设置tableView的框架后,stackview应该会自动调整。