2015-11-02 2 views
1

У меня есть несколько XIB, которые я хочу программным образом добавить в scrollview. Однако, когда я добавляю их с помощью addSubview, все они отображаются друг над другом, поскольку начало координат всегда установлено на 0,0.Как добавить несколько пользовательских XIB в scrollview программно

Есть ли чистый способ добавления нескольких XIB, при условии, что они правильно установлены, а не друг на друга.

ответ

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

Смежные вопросы