滚动时UITableView奇怪的布局行为更改

mal*_*yeb 5 uitableview ios swift

我有一个UITableView定制UITableViewCell设计有自动高度.

该行为是在我的第一负载UIViewControllerUITableView显示我的标签与部分文本.然后,当我滚动到底部然后滚动到顶部,我得到所需的高度和文本的外观.

这是截图:

初始查看视图控制器:

在此输入图像描述

这是滚动底部然后顶部的外观(这是我的实现的正确外观,我删除了一些Lorem文本):

在此输入图像描述

编辑1:

码:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 101 // much heigher than most cells. But no use.
Run Code Online (Sandbox Code Playgroud)

在UI Builder中,UITableViewCell的"行高"设置为"默认"(未选中自定义)

在UI Builder中,UITableView的"行高"设置为"101"(也尝试将其设置为"0"但结果相同.)

Ram*_*Ram 5

使自动布局可以在UITableViewCell上工作是为了确保您具有约束所有子视图的约束,也就是说,每个子视图应具有前导,顶部,尾部和底部约束。

此外,您需要从contentView的顶部到底部明确的约束线。这可确保自动布局根据其子视图正确确定contentView的高度。

棘手的部分是,如果您缺少某些约束,Interface Builder通常不会警告您。运行项目时,自动布局不会简单地返回正确的高度。例如,它可能会为单元格高度返回0,这表明您的约束需要更多的工作。

如果在处理自己的项目时遇到问题,请尝试调整约束,直到满足上述条件。

检查链接以获取详细信息:http : //www.raywenderlich.com/87975/dynamic-table-view-cell-height-ios-8-swift