【发布时间】:2019-08-25 08:47:03
【问题描述】:
我有一个 Storyboard,它有一个简单的视图层次结构:
- View (has top/bottom constraints relative to safeArea >= 30, centerY)
- Label (has height/top(SuperView)/bottom(TextField) constraints)
- TextField (has height/top(Label)/bottom(TableView) constraints)
- TableView (has height >= 0, top(TextField)/bottom(Superview) constraints)
在 UITableViewDelegate (cellForRowAt) 内部:
tableView.setNeedsLayout()
tableView.layoutIfNeeded()
我希望实现的行为是让 TableView 和父视图随着新记录的添加而增长。但是,父视图不应超过其相对于安全区域的顶部/底部约束。
所有元素都明确设置了高度约束和间距,除了表格视图(高度 >= 0)。同样,父视图内容拥抱优先级为 250,tableview 压缩阻力为 750。我认为修复高度约束和元素之间的间距将使 tableview 增长到某个点,因为顶部的内容压缩阻力更高/bottom 安全区域的限制比 TableView 的限制。
但是,XCode 迫使我为父视图设置高度或 Y 位置约束。我不能这样做,因为那样视图就不能自动增长。
我更愿意坚持使用 AutoLayout,并想知道是否有人对如何做到这一点有想法或资源。
【问题讨论】:
标签: ios swift uitableview autolayout