iOS:在Swift中动态设置UITableView高度

时间:2017-03-14 19:07:35

标签: ios swift uitableview

我们的UITableView存在于ViewController(而不是TableViewController)上。我们在运行时用两行填充它。当我们设置高度约束时,表格显示正常。当我们设置高度限制时,表格完全不会出现。如何设置UITableView动态设置其高度?

我已经看到了关于动态设置行高(这确实很好)的线程,但没有看到实际的表高度。这个特定点上有一些线索,但似乎没有一个对我有用。

解决方案更新:正如Robotic Cat建议我们在Storyboard中的UITableView设置一个高度限制(我们已经有了),然后按住Ctrl键创建一个{{ 1}}在我们的控制器中。从那里,我们在每个Vignesh的答案中IBOutlet执行了以下代码:

viewWillAppear

注意在执行上面的代码之前,我们用相同的方法调用tableViewHeightConstraint.constant = tableView.contentSize.height 来填充我们的表。

2 个答案:

答案 0 :(得分:17)

我们没有UITableView的自动维度,它们只影响UITableViewCell高度。如果要动态设置表视图高度,我认为最好的方法是在表视图完成加载后将表视图高度约束设置为等于其内容大小。我的意思是,

tableViewHeightConstraint.constant = tableView.contentSize.height

答案 1 :(得分:1)

您可以通过多种方式更改tableView框架,包括动画等。

sqlcmd -i "\\path\to\sqlcode.sql" -S "ServerName" -d "DBName" -o "C:\path\to\output.xml" -y0

或者您可以更改与tableView相关的约束,然后使用layoutIfNeeded更新约束,如果您愿意也可以设置动画。

例如,如果您有高度约束属性:

tableView.frame = CGRect(x: leftTableBorder, y: topTableBorder, width: tableWidth, height: tableHeight)

在任何情况下,都需要约束,因此autolayout知道如何呈现表。