【发布时间】:2016-02-03 00:09:15
【问题描述】:
我有几个想要以编程方式添加到滚动视图的 XIB。但是,当我使用 addSubview 添加它们时,它们都显示在彼此之上,因为原点始终设置为 0,0。
是否有一种简洁的方法可以添加多个 XIB,同时确保它们布局正确而不是相互重叠。
【问题讨论】:
标签: ios objective-c xcode uiscrollview interface-builder
我有几个想要以编程方式添加到滚动视图的 XIB。但是,当我使用 addSubview 添加它们时,它们都显示在彼此之上,因为原点始终设置为 0,0。
是否有一种简洁的方法可以添加多个 XIB,同时确保它们布局正确而不是相互重叠。
【问题讨论】:
标签: ios objective-c xcode uiscrollview interface-builder
在包含滚动视图的主视图控制器中,您可以在 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 是为了说明状态栏。
【讨论】: