【发布时间】:2017-03-02 12:05:24
【问题描述】:
我正在尝试在 tableview 单元格中使用 stackview。我的堆栈视图有两个水平对齐的标签。我在 IB 中添加了一个尺寸类覆盖,以垂直对齐标签以获得紧凑的宽度。
标签的对齐方式确实按预期发生了变化,但单元格的高度不正确,直到我将单元格向外滚动并返回。
我的表格视图指定使用以下方法计算单元格的高度:
// Automatic row height calculation
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 68.0 // set to whatever your "average" cell height is
因此,在 iPhone SE 中,我希望标签在横向中并排,但在纵向时一个在另一个之上。如果我以纵向模式启动我的应用程序,则标签与预期的一样,但是当我旋转到横向时,它们会并排移动,但单元格仍然具有纵向的高度。如果我将单元格滚动出屏幕,则单元格高度会得到纠正。
我错过了什么?
请帮忙。
谢谢。
【问题讨论】:
-
我想我将放弃尝试在 tableview 单元格中使用具有 size 类的堆栈视图。我可以在 Xcode 8 中使用“Vary for traits”实现几乎相同的效果。这基本上意味着我根据尺寸类在我的 UI 元素上安装和卸载约束。堆栈视图会使这变得容易得多;具体来说,您只需更改对齐属性即可将标签从水平对齐更改为垂直对齐,而不必安装和卸载一些约束。 Stackview 很容易采用,所以如果我得到一些新信息,我会重新考虑。