如何以编程方式将多个自定义XIB添加到scrollview

时间:2015-11-02 23:36:01

标签: ios objective-c xcode uiscrollview interface-builder

我想要以编程方式添加到scrollview中的几个XIB。但是,当我使用addSubview添加它们时,它们全部显示在彼此之上,因为原点始终设置为0,0。

是否有一种干净的方式来添加多个XIB,同时确保它们正确布局而不是彼此叠加。

1 个答案:

答案 0 :(得分:0)

在包含滚动视图的主视图控制器中,您可以在Swift中执行此操作:

let leftView = LeftViewController(nibName: "LeftViewController", bundle: nil)

self.addChildViewController(leftView)
self.scrollView.addSubview(leftView.view)
leftView.didMoveToParentViewController(self)

let middleView = MiddleViewController(nibName: "MiddleViewController", bundle: nil)

var frame1 = middleView.view.frame
frame1.origin.x = self.view.frame.size.width 
middleView.view.frame = frame1

self.addChildViewController(middleView)
self.scrollView.addSubview(middleView.view)
middleView.didMoveToParentViewController(self)

let rightView = RightViewController(nibName: "RightViewController", bundle: nil)

var frame2 = rightView.view.frame
frame2.origin.x = self.view.frame.size.width * 2
rightView.view.frame = frame2

self.addChildViewController(rightView)
self.scrollView.addSubview(rightView.view)
rightView.didMoveToParentViewController(self)  

self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width * 3,     self.view.frame.size.height - 22)

注意:-22用于说明状态栏。

此解决方案可归功于:https://www.veasoftware.com/tutorials/2015/4/2/uipageviewcontroller-in-swift-xcode-62-ios-82-tutorial