我的TableView内容3控制器。
1)WebView 1
2)ImageView
3)Webview 2
我正在动态设置所有3个控制器的帧大小。因此,行高应根据内容大小而改变。
self.secondWebViewLable.frame = CGRect(x: 0,
y: Int(self.firstImage.frame.origin.y + self.firstImage.frame.height),
width: Int(screenSize.width),
height: Int(self.secondWebViewLable.frame.height) )
self.firstImage.frame = CGRect(x: 0,
y: Int(self.firstWebViewLable.frame.origin.y + self.firstWebViewLable.frame.height),
width: Int(screenSize.width),
height: Int(scaledHeight) )
您可以看到控制器高度根据数据而变化。我也试图设置单元格的高度。下面是我的代码。但我固定了高度。请帮助我。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return screenSize.height
}
答案 0 :(得分:1)
使用Autolayout
在 viewDidLoad()中设置估计行高,并从 heightForRowAt indexPath 方法返回 UITableViewAutomaticDimension 。
请参阅本教程以获取更详细的说明:self-sizing-table-view-cells
没有Autolayout
如果没有Autolayout,您必须通过添加单元格和边距中所有UI组件的高度来计算每个单元格的高度,并在UITableView数据源方法中返回计算出的高度 tableView:heightForRowAtIndexPath: