我的應用程序的層次結構看起來像這樣子視圖控制器來調整containerView
主視圖控制器(讓我們稱之爲控制器1)包含一個滾動視圖,圖像以及指向其它的viewController和將數據傳送給的tableView一個containerView 。
控制器1的滾動視圖被設置爲使用約束正確調整大小,以便containerView可以在高度上增長。
問題是tableView有動態加載的數據,它的大小發生了變化,但是這並不反映在containerView上。我需要我的containerView通知有關tableView的新大小,以便它可以相應調整大小,用戶可以滾動瀏覽整個屏幕,而不僅僅是默認大小的containerView。
我希望這是有道理的。
我讀了一些名爲preferredContentSizeDidChange的東西,但我不確定如何正確實施它,或者它是否適用於我的情況。
實施
override func preferredContentSizeDidChangeForChildContentContainer(container: UIContentContainer) {
super.preferredContentSizeDidChangeForChildContentContainer(container)
print(container)
}
在控制器1並沒有影響
你也可以在你的ContainerView中實現你自己的委託方法(設置高度約束) - 並從你的childViewController(TableView)調用它來更新高度。 – derdida
我不知道你是否可以測試這個,但是,如果你沒有頂層的滾動視圖,會不會有問題? –
請告訴我,如果我正確理解你的問題。你希望容器隨着表視圖數據的增加而增長(這將阻止它滾動,因爲tableview的完整數據不會溢出),然後當它達到屏幕的總高度時,容器視圖應該停止增長並且tableview會溢出並開始滾動? – kerry