折叠展开UITableView

时间:2016-07-04 13:53:52

标签: ios swift uitableview uiviewanimation

我尝试展开/折叠UITableView内的UIViewController。我将UITableView高度约束设为零并制作动画

func collapseExpandRoomSection() {
     isRoomCollapsed = !isRoomCollapsed
     tableHeightConstraint.constant = isRoomCollapsed ? 0.0 : totalTableHeight    
     UIView.animateWithDuration(0.3) { 
       self.view.layoutIfNeeded()
     }
 }

崩溃效果很好但是当我试图扩展表格时,所有单元格都消失了。

由于

1 个答案:

答案 0 :(得分:0)

看起来你已经更新了constraint,你应该按照这个顺序这样做我相信:

self.view.setNeedsUpdateConstraints()
self.view.setNeedsLayout()
self.view.layoutIfNeeded()

由于您已更新约束,因此您应首先更新设置更新约束并设置需求布局。随后layoutIfNeeded()立即申请更改。

正如在评论中简要讨论的那样,代码仅适用于覆盖updateConstraint的情况。回答上述问题不正确。