我有一个RootViewController,它由两个uiviewcontroller组成,所有这些都是在代码中创建的(没有故事板/nib)。
第一个UIViewController具有以下定位:
weekView.translatesAutoresizingMaskIntoConstraints = false
weekView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
weekView.heightAnchor.constraint(equalToConstant: 100).isActive = true
weekView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
weekView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
另一个UIViewController具有以下定位:
daysViewController.view.translatesAutoresizingMaskIntoConstraints = false
daysViewController.view.topAnchor.constraint(equalTo: weekView.bottomAnchor).isActive = true
daysViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
daysViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
daysViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
这使得它固定在第一个UIViewController的底部,并占据其余屏幕高度(距离顶部UIViewController的距离为100)。
第二个UIViewController是一个自定义UIPageViewController,它由UIViewController的多个子视图组成。
问题
相反,帧高度与屏幕高度相同。
三种不同状态下的打印框高度如下:
viewDidLoad PageViewController frame: (0.0, 0.0, 375.0, 667.0)
viewDidLoad ChildViewController frame: (0.0, 0.0, 375.0, 667.0)
viewWillAppear ChildViewController frame: (0.0, 0.0, 375.0, 667.0)
viewDidAppear ChildViewController frame: (0.0, 0.0, 375.0, 667.0)
我如何解决这个问题?
因为现在我需要考虑的是,视图框架是屏幕的全高,而不是创建所有子视图时应该是567。