我有一個充當Container View Controller的UIViewController。它有一個與屏幕寬度相同的UIScrollView,但它的高度小於屏幕的高度。如何使子視圖調整爲UIScrollView ContentSize?
UIScrollView包含另外兩個UIViewControllers的視圖,並且可以水平滾動這些視圖。
設置我的contentSize是這樣的:
scrollView.contentSize.width = self.view.bounds.width * 2
這工作,讓我通過我的UIViewController的意見水平滾動。
以下是我如何添加的UIViewController意見,我的滾動視圖:
private func addPanel(viewController: UIViewController, panel: Panel) {
let xOffset: CGFloat!
switch panel {
case .left:
xOffset = 0.0
case .right:
xOffset = self.view.bounds.width
}
let panelView = UIView(frame: CGRect(x: xOffset, y: 0, width: self.view.bounds.width, height: self.scrollView.bounds.height))
scrollView.addSubview(panelView)
let panelViewController: UIViewController! = viewController
var viewBounds = view.bounds
viewBounds.height = panelView.bounds.height
panelViewController.view.frame = view.bounds
panelView.addSubview(panelViewController.view)
addChildViewController(panelViewController)
panelViewController.didMove(toParentViewController: self)
}
出於某種原因,UIViewController的視圖不調整大小以適合的UIScrollView的高度。
我應該這樣做基於約束?我將如何做到這一點。我一直在爲此掙扎幾天,而且不知所措。
本質上,UIViewController視圖就像全屏視圖偏移一樣,所以你不能看到視圖的底部,因爲屏幕的底部將它們切斷。
如果您發佈了您正在使用的實際代碼 - 或者至少是一個運行並演示該問題的精簡版本,它會更容易提供幫助。看着你發佈的代碼,當你可能想要將它設置爲'scrollView'或'panelView'的高度時,它看起來像是將'panelViewController.view'的高度設置爲'view'的高度,成爲'panelViewController.view'的超級視圖。 (它也可以幫助使用不那麼容易混淆的名稱,並添加註釋。) – DonMag