我想要以编程方式添加到scrollview中的几个XIB。但是,当我使用addSubview添加它们时,它们全部显示在彼此之上,因为原点始终设置为0,0。
是否有一种干净的方式来添加多个XIB,同时确保它们正确布局而不是彼此叠加。
答案 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用于说明状态栏。