答案 0 :(得分:2)
您应该使用容器视图,并将容器视图的框架设置为屏幕高度的一半 。但你可以在对象库xcode中使用容器视图。 容器视图看起来像视图使用在视图控制器类中,类名称添加此代码:
class YourViewController: UIViewController {
// MARK: Properties
let containerView = UIView()
在viewDidLayoutSubviews()函数中,您应该像这样设置容器视图的框架:
override func viewWillLayoutSubviews() {
containerView.frame = CGRect(x: 0, y: self.view.frame.midY, width: self.view.frame.width, height: self.view.frame.height / 2)
let yourSecondViewController = YourSecondViewController()
addContentContainerView(yourSecondViewController)
}
现在你有一个覆盖屏幕一半的容器视图, 然后你应该将第二个视图控制器添加到容器视图中, 所以你应该以编程方式创建第二个视图控制器类,或者你应该在你的xcode故事板中创建一个视图控制器并为它设置storyboard id。
用于在容器视图中添加和删除子视图控制器,您可以使用此功能:
private func addContentContainerView(_ childViewController: UIViewController) {
childViewController.willMove(toParentViewController: self)
containerView.addSubview(childViewController.view)
self.addChildViewController(childViewController)
childViewController.didMove(toParentViewController: self)
}
private func removeContentContainerView(_ childViewController: UIViewController) {
childViewController.didMove(toParentViewController: nil)
childViewController.view.removeFromSuperview()
childViewController.removeFromParentViewController()
}
然后你应该使用private func addContentContainerView(_ childViewController:UIViewController)将你的第二个视图控制器添加到容器视图中
如果以编程方式进行第二次设置并设置应该使用此代码,请在viewWillLayoutSubviews方法中添加容器,如下所示:
override func viewWillLayoutSubviews() {
containerView.frame = CGRect(x: 0, y: self.view.frame.midY, width: self.view.frame.width, height: self.view.frame.height / 2)
let yourSecondViewController = YourSecondViewController()
addContentContainerView(yourSecondViewController)
}
但如果您在storyboard中创建第二个视图控制器,则应为其设置id,选择视图控制器,然后在标识集下面选择身份检查器故事板ID:SecondViewController 然后改为上一次viewWillLayoutSubwies,你的viewWillLayoutSubviews应该是这样的:
override func viewWillLayoutSubviews() {
containerView.frame = CGRect(x: 0, y: self.view.frame.midY, width: self.view.frame.width, height: self.view.frame.height / 2)
let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil)
let yourSecondViewController = mainStoryBoard.instantiateViewController(withIdentifier: "SecondViewController")
addContentContainerView(yourSecondViewController)
}
并且对于滚动,你应该添加一个UIScrollView并将其高度设置为self.view.frame.height * 1.5