在scrollview中添加视图控制器

use*_*523 -3 scrollview viewcontroller swift

我目前正在开发使用情节提要开发的应用程序。

我试图在开始之前以编程方式将视图控制器添加到分页滚动视图中,然后再在情节提要中添加其他2个视图。

添加了视图控制器,但宽度稍大,并进入了中间视图。

let vc = Vc()
scrollView.addSubview(vc.view)
Run Code Online (Sandbox Code Playgroud)

anh*_*nho 7

你必须分配contentSizescrollview和位置对frameViewController

scrollView.contentSize = CGSize(width: 2 * view.frame.width, height: scrollView.frame.height)

let frameVC = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)

vc.view.frame = frameVC

vc.willMoveToParentViewController(self)
self.addChildViewController(vc)
vc.didMoveToParentViewController(self)
scrollView.addSubview(vc.view)
Run Code Online (Sandbox Code Playgroud)

请注意,您必须更改以frameVC满足您的要求

Swift 5语法更新

scrollView.contentSize = CGSize(width: 2 * view.frame.width, height: scrollView.frame.height)

let frameVC = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)

vc.view.frame = frameVC

vc.willMove(toParent: self)
addChild(vc)
vc.didMove(toParent: self)
scrollView.addSubview(vc.view)
Run Code Online (Sandbox Code Playgroud)

注意:框架与约束布局

除了使用框架外,您还可以使用创建约束布局将添加UIViewUIScrollView

scrollView.contentSize = CGSize(width: 2 * view.frame.width, height: scrollView.frame.height)

scrollView.addSubview(vc.view)

vc.view.translatesAutoresizingMaskIntoConstraints = false

// add constrains here

vc.willMove(toParent: self)
addChild(vc)
vc.didMove(toParent: self)
Run Code Online (Sandbox Code Playgroud)