更新内容大小高度

时间:2018-01-21 07:00:16

标签: ios swift uitableview uiscrollview

我有一个UIScrollView,其中UITableView隐藏在UIView之下。 UITableView包含动态高度的单元格,但我无法设置滚动视图的contentSize。如果我在viewDidLayoutSubviews中设置它,它可以正常工作,但从viewDidLoad调用它将无效。从viewDidLayoutSubviews调用它是一个问题,因为该函数每隔几秒刷新一次,如果我向tableView添加一个新元素,我不知道如何更改scrollView的contentSize。这就是我到目前为止所做的:

DispatchQueue.main.async {
   UIView.animate(withDuration: 0, animations: {
      self.tableView.layoutIfNeeded()
   }) { (complete) in
      print(self.tableView.contentSize.height)
      self.tableViewHeightConstraint.constant = self.tableView.contentSize.height

      self.scrollView.contentSize.height = self.tableView.contentSize.height + self.view.frame.width/2 + 10                    
      print(self.scrollView.contentSize.height)
   }
}

所以我的问题是,我怎么能从viewDidLoad开始工作?

1 个答案:

答案 0 :(得分:0)

您可以使用(Dispatch.main.async After)从viewDidLoad中调用它,或者在viewDidLayoutSubviews中设置它并将调整大小代码放入if语句中,并且在IF中设置一次= false,将一次bool值执行一次声明