ios - 使用自动布局将 UITableView 的高度设置为其内容的高度

标签 ios swift xcode uitableview nslayoutconstraint

我有一个 View ,其中有两个标签和一个 TableView 。我希望标签 1 始终位于我的表格 View 上方,标签 2 始终位于表格 View 下方。问题是 Table View 需要自动调整大小,这意味着增加或减少高度。

现在我有一个约束,表示 Table View 的高度始终等于 85 和一个 @IBOutlet 到我可以更改常量的高度约束。

我猜我需要将常量更改为所有单元格的高度,但我不确定该怎么做。

Menu constraints

最佳答案

您必须在 UIViewController 中覆盖 updateViewConstraints() 并将高度约束的常量设置为 tableView.contentSize.height:

override func updateViewConstraints() {
    tableHeightConstraint.constant = tableView.contentSize.height
    super.updateViewConstraints()
}

然后您必须确保 Label2 有一个顶部约束,即 greaterThanOrEqual 到 TableView 的底部。并且您还必须将 TableView 的高度约束的优先级从 Required 更改为 High 以避免当 TableView 的 contentHeight 大于可用高度。

关于ios - 使用自动布局将 UITableView 的高度设置为其内容的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33268463/

相关文章:

ios - 动态获取swift函数参数

ios - 在 AVPlayerViewController, Swift 中将 AVPlayer 设为全屏 View

swift - 很热衷于在另一个 scn 对象中使用我在一个 scn 对象中创建的 Material ?

ios - spritekit 中的 Facebook 登录总是返回已取消

ios - 将数据 SQlite 加载到 htmlString iOS

Objective-C if 语句输入错误

php - 使用 iOS 和 PHP 发送 fcm 推送通知

objective-c - 从 NSString : How to ignore the timezone 转换为 NSDate

ios - 无法更改导航栏颜色

arrays - 使用多个索引 :[Int] 枚举多线性映射的 Swift 算法