我有以下布局UITableViewCell
:
布局由两个子视图组成:
TopView
(包含一个Show
按钮)BottomView
Show
(按下按钮时展开或折叠)。
BottomView
由 3 个子视图组成。这些子视图的约束是:
三个子视图中的每一个都包含一个
UILabel
固定到 的leading
,top
以及trailing
具有常量 == 8 的边。使用 >= 8 的约束将 固定到 的底部。这会强制与
UILabel
的顶部对齐。UIView
UILabel
UIView
三个中最左边的一个
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
(尝试停用,但警告没有消失)