私は2つのtableviewコントローラを子として持つ私のビューのコンテナを持っています。 私は私がコンテナのサイズを大きくした後、その容器底部に各テーブルビューを修正したいチャイルズ親の底にtableviewを修正する制約を追加する方法
func makeAndAddVC<T: UIViewController>() -> T {
let vc = T()
self.addChildViewController(vc)
return vc
}
を作るためのクラスで、このプロパティとしてチャイルズ
lazy var photoFeedVC: UserPicsTableViewController = self.makeAndAddVC()
lazy var postFeedVC: PostFeedVC = self.makeAndAddVC()
機能を持っていますviewDidAppearにあります。
photoFeedVC.tableView.snp.makeConstraints({(make) -> Void in
make.bottom.equalTo(containerView)
})
postFeedVC.tableView.snp.makeConstraints({ make -> Void in
make.bottom.equalTo(self.view)
})
この
はcontrainstのトラインが下に修正することですが、Xcodeはキャッチされない例外により「NSGenericException」、理由に私のアプリを終了、このエラー***を与えた:「アンカーとの制約を有効にできません と に共通の祖先がないためです。制約またはその アンカーは、異なるビュー階層の項目を参照していますか?それは です。ここ
問題のエラーメッセージは、同じ階層にない2つのビューを固定していると言っている
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()
}
質問を編集してビューの構図を表示し、子どもがビューにどのように追加されるかを表示します。このすべての要素はscrollView内にあります。フレームの増加の問題は、スクロール時にクライアントが上部を隠すように要求したため、コンテナの高さが高くなりました。問題は、両方のテーブルビューがコンテナのように成長しないことです。 –