如何在Swift 3中计算或自动调整UiTableView的高度

时间:2017-06-15 10:40:35

标签: ios swift uitableview

我的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
    }

1 个答案:

答案 0 :(得分:1)

使用Autolayout

viewDidLoad()中设置估计行高,并从 heightForRowAt indexPath 方法返回 UITableViewAutomaticDimension

请参阅本教程以获取更详细的说明:self-sizing-table-view-cells

没有Autolayout

如果没有Autolayout,您必须通过添加单元格和边距中所有UI组件的高度来计算每个单元格的高度,并在UITableView数据源方法中返回计算出的高度 tableView:heightForRowAtIndexPath: