我有以下布局UITableViewCell:
布局由两个子视图组成:
TopView(包含一个Show按钮)BottomViewShow(按下按钮时展开或折叠)。
BottomView由 3 个子视图组成。这些子视图的约束是:
三个子视图中的每一个都包含一个
UILabel固定到 的leading,top以及trailing具有常量 == 8 的边。使用 >= 8 的约束将 固定到 的底部。这会强制与
UILabel的顶部对齐。UIViewUILabelUIView三个中最左边的一个
UIViews固定在 的前沿BottomView。- 三者中最右边的
UIViews被固定在BottomView - 这三个中的每一个
UIViews都固定在顶部BottomView - 这三个中的每一个
UIViews都固定在底部BottomView - 三个视图具有相等的宽度和高度。
- 的底部
BottomView被固定到UITableViewCell内容视图的底部
这给了我我想要的布局:
我想要完成的是以下内容:
- 最初,
BottomView应该是折叠的。 - 单击
Show按钮应根据需要展开或折叠BottomView。
我设法通过创建一个bottomViewHeightConstraint最初卸载的来做到这一点。点击show按钮激活/停用约束。
另一个TableViewCell.m
-(IBAction) show
{
self.bottomViewHeightConstraint.active = !self.bottomViewHeightConstraint.active;
[UIView animateWithDuration:0.3 animations:^{
[self layoutIfNeeded];
[self.delegate cellRequiresUpdates:self];
} completion:^(BOOL finished) {
}];
}
UIViewController.m
-(void) cellRequiresUpdates:(AnotherTableViewCell *)cell
{
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
这很有效,但对不可满足的约束产生了很多警告。我想帮助了解我的哪些限制导致了警告。 不可满足的约束是:
bottomViewHeightConstraint== 0
(需要,因为我想折叠底视图)
UIView最左边和最右边的高度相等UIBottomView
(尝试停用,但警告没有消失)
- 最左边的 UIView 底部和底部之间的 8 像素距离
BottomView
(尝试停用,但警告没有消失)
- 最左边的 UIView 底部和底部之间的 8 像素距离
BottomView
(尝试停用,但警告没有消失)


