我的视图中有一个容器,其中有两个 tableview 控制器作为子项。
我在课堂上有孩子作为这个属性
lazy var photoFeedVC: UserPicsTableViewController = self.makeAndAddVC()
lazy var postFeedVC: PostFeedVC = self.makeAndAddVC()
使孩子们的功能
func makeAndAddVC<T: UIViewController>() -> T {
let vc = T()
self.addChildViewController(vc)
return vc
}
在 viewDidAppear 中增加容器的大小后,我想将每个 tableview 固定到其容器底部。
photoFeedVC.tableView.snp.makeConstraints({(make) -> Void in
make.bottom.equalTo(containerView)
})
postFeedVC.tableView.snp.makeConstraints({ make -> Void in
make.bottom.equalTo(self.view)
})
这是一个试图修复到底部的约束,但 xcode 给了我这个错误
*** 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“无法使用锚激活约束,因为它们没有共同的祖先。约束或其锚点是否引用不同视图层次结构中的项目?这是非法的。
这里增加容器的方法
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
print("aparecio la vista")
containerView.frame.size.height += 150
self.feed.frame.size.height += 150.0
self.photoFeedVC.tableView.frame.size.height += 150.0
self.postFeedVC.tableView.frame.size.height += 150
self.scrollView.contentSize.height = containerView.height + 10
self.scrollView.layoutIfNeeded()
}