我創建了一個UIPageViewController
編程並將其添加爲一個孩子我的容器視圖CONTROLER如下圖所示:UIPageViewController和自動版式:約束不能夠正確的運用
override func viewDidLoad() {
super.viewDidLoad()
self.pageViewController = UIPageViewController(transitionStyle:.PageCurl, navigationOrientation:.Horizontal, options: nil)
self.mainImageView!.userInteractionEnabled = true
self.pageViewController.delegate = self
self.pageViewController.dataSource = self.modelController
self.addChildViewController(self.pageViewController)
self.view.addSubview(self.pageViewController.view)
self.pageViewController.didMoveToParentViewController(self)
}
的問題是,UIPageViewController
的觀點大小不正確,如下面的視圖層次結構所示。由UIPageViewController
的數據源返回的視圖控制器包含一個UIScrollView
。我已經設置了UIScrollView
的限制,以便scrollView擴展到超級視圖。
在我看來,問題源於scrollView約束與容器視圖的約束「分離」,但我不知道如何使用StoryBoard修復它,因爲這些視圖是在不同視圖中的視圖-controllers。我不是很熟悉以編程方式指定約束,並且我迄今爲止以編程方式設置約束的努力已失敗。
我該如何解決這個問題,以便UIPageViewController
視圖控制器的滾動視圖被正確包含在容器ViewController的視圖內?
您應該調用setNeedsLayout,而不是直接調用layoutSubviews。 – 2014-12-18 12:27:31
我有一個奇怪的錯誤。 UIPageViewControllerContentView是UIPageViewController用來保存實際內容的類。 我將我的視圖以編程方式添加到頁面視圖控制器。 我在我的實際內容視圖和這個UIPageViewControllerContentView之間產生了一些不能令人滿意的約束,這導致我的滾動視圖內容被剪切。 self.pageViewController.view.setTranslatesAutoresizingMaskIntoConstraints(false) 修正了它。 – NameNotFoundException 2017-08-15 07:44:06