Ios 自调整大小UITableView单元格大小不正确

Ios 自调整大小UITableView单元格大小不正确,ios,uitableview,xcode8,Ios,Uitableview,Xcode8,我有一个带有静态单元格的UITableView。描述标签应显示多行文本,但仅显示一行 我已选择描述标签并将行数设置为0。我还将其设置为Word Wrap 我已按如下方式设置自动标注: class BeerTableViewController: UITableViewController { @IBOutlet weak var beerName: UILabel! @IBOutlet weak var brewer: UILabel! @IBOutlet weak v

我有一个带有静态单元格的
UITableView
。描述标签应显示多行文本,但仅显示一行

我已选择描述标签并将行数设置为0。我还将其设置为Word Wrap

我已按如下方式设置自动标注:

class BeerTableViewController: UITableViewController {

    @IBOutlet weak var beerName: UILabel!
    @IBOutlet weak var brewer: UILabel!
    @IBOutlet weak var beerDescription: UILabel!

    var scannedBeer: Beer!

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.rowHeight = UITableViewAutomaticDimension
        tableView.estimatedRowHeight = 44

        beerName.text = scannedBeer.name
        brewer.text = scannedBeer.brewer
        beerDescription.text = scannedBeer.description
    }

    override func viewDidAppear(_ animated: Bool) {
        tableView.reloadData()
    }

}
我已将标签固定到ContentView的顶部和底部,如下所示:


尝试使用
UITableViewDelegate的
UITableViewAutomaticDimension的
高度和
估计高度

只需将表视图
delegate
设置为
self
,并使用以下命令:

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

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

这是因为您的beereDescription在ViewDidLoad上标记为nil。您需要在cellForRowAtIndexpath而不是ViewDidLoad上赋值

并且不能在UIViewcontroller类中连接单元格子视图的IBOutlet

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let identifier = "cellIdentifier"
        let cell = tableView.dequeueReusableCell(withIdentifier: identifier)

        beerDescription: UILabel? = (newsCell?.viewWithTag(101) as? UILabel) // assign tag to label in cell
        beerDescription.text = scannedBeer.description
       return cell

}

将“高度约束”设置为大于等于。我恐怕不能,因为我使用的是静态单元格,而不是动态单元格。您可以使用,无论您使用的是静态单元格还是动态单元格。HeightforRowatineXpath工作正常!非常感谢。你能编辑你的答案吗。。。第一个函数应该是heightForRow。万分感谢!