我在Storyboard中有2个TableViews(一个在顶部,另一个在底部),并且自动布局已设置并可以工作。对于TableView,我正在从数据库中检索数据,因此它不会立即显示TableView内容。检索数据完成后,在numberOfRowsInSection中,我根据计数更改TableView的高度。

 if tableView == self.TableView1 {
    count = tableView1Content.count

    if count != nil {
      let cellSize = 100

      switch count! {
         case 0:
           tableView.frame.size.height = CGFloat(0)
           break;
         case 1:
           tableView.frame.size.height = CGFloat(cellSize)
         case 2:
           tableView.frame.size.height = CGFloat(cellSize * 2)
         default:
           print("D")
           break;
      }
    }
}


因此,我可以更改TableView1的高度。 TableView2的“ TableView1的顶部空间”为10,但是由于在加载视图后发生高度变化,TableView2不会自行调整以保持“ TableView1的顶部空间”

最佳答案

您正在更改帧大小,而不是高度约束常数。在更改调用self.view.layoutIfNeeded()之后,您应该连接高度约束(IBOutlet)并更改高度。

此处为动画约束的example

关于ios - 查看期间更改后重新排列自动布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37667775/

10-14 20:03
查看更多