我在Xcode 8上使用Swift 3构建一个带有tableview和自定义单元格的ViewController。我在自定义单元格中有多个标签,我在初始化中使用以下代码设置了自动布局:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 90.0
这是在Xcode上设置的方式:
这是它在模拟器上的外观:
我尝试在运行时使用相同的结果在右边的最后一个标签上设置约束。我是否需要将视图放在容器视图中,如CollectionView或其他什么?
答案 0 :(得分:1)
目前尚不清楚你施加了什么约束。但是,您必须将第一个标签固定到superview的顶部,并将最后一个标签固定到superview的底部,以使自动尺寸工作。另外,请确保所有标签都已将其顶部和底部相互设置。
答案 1 :(得分:1)
将top,bottom,leading和trailing的自动约束设置为您喜欢的任何值。但是,此值是您希望偏离不同边距的许多像素。之后,将以下代码添加到viewDidLoad()
:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 100
通过使用UITableViewAutomaticDimension,您可以告诉表视图使用自动布局约束,这些约束将使用内容来确定高度。
要使用UITableViewAutomaticDimension,您需要指定estimatedRowHeight
。此值是一个任意值,它将成为后备,您可以使用您认为对项目有益的任何值。如果这对您有用,请告诉我。
答案 2 :(得分:1)
将您的控制器设置为tableview委托。
从 UITableView协议和
实施tableView(_:heightForRowAt:)
方法
return 90.0