我尝试展开/折叠UITableView
内的UIViewController
。我将UITableView
高度约束设为零并制作动画
func collapseExpandRoomSection() {
isRoomCollapsed = !isRoomCollapsed
tableHeightConstraint.constant = isRoomCollapsed ? 0.0 : totalTableHeight
UIView.animateWithDuration(0.3) {
self.view.layoutIfNeeded()
}
}
崩溃效果很好但是当我试图扩展表格时,所有单元格都消失了。
由于
答案 0 :(得分:0)
看起来你已经更新了constraint
,你应该按照这个顺序这样做我相信:
self.view.setNeedsUpdateConstraints()
self.view.setNeedsLayout()
self.view.layoutIfNeeded()
由于您已更新约束,因此您应首先更新设置更新约束并设置需求布局。随后layoutIfNeeded()
立即申请更改。
正如在评论中简要讨论的那样,代码仅适用于覆盖updateConstraint
的情况。回答上述问题不正确。