2016-12-01 6 views
0

Попытка установить ViewControllers внутри горизонтального прокрутки ScrollView, и я попытался независимо от того, что я делаю, ширина каждого ViewController неверна и не может заставить каждого ViewController быть одинаковым. Вышеупомянутый ScrollView отлично работает и используется для подкачки через UIImageView. Ниже приведен вопрос, возможно, есть лучший способ добиться этого.iOS 10 Swift 3 - ViewController внутри ScrollView

Поблагодарили бы за любую помощь по этому вопросу, код вставляется ниже для других. Надеюсь, поможет.

enter image description here

contentScrollView.translatesAutoresizingMaskIntoConstraints = false 

    // Create the three views used in the swipe container view 
    let storyboard = UIStoryboard(name: "Main", bundle: nil) 

    let aboutVC: AboutViewController = storyboard.instantiateViewController(withIdentifier: "AboutViewController") as! AboutViewController 
    let categoriesVC: CategoriesViewController = storyboard.instantiateViewController(withIdentifier: "CategoriesViewController") as! CategoriesViewController 
    let reviewsVC: ReviewsViewController = storyboard.instantiateViewController(withIdentifier: "ReviewsViewController") as! ReviewsViewController 

    // Add in each view to the container view hierarchy 
    // Add them in opposite order since the view hieracrhy is a stack 

    self.addChildViewController(aboutVC) 
    self.contentScrollView!.addSubview(aboutVC.view) 
    aboutVC.didMove(toParentViewController: self) 

    self.addChildViewController(categoriesVC) 
    self.contentScrollView!.addSubview(categoriesVC.view) 
    categoriesVC.didMove(toParentViewController: self) 

    self.addChildViewController(reviewsVC) 
    self.contentScrollView!.addSubview(reviewsVC.view) 
    reviewsVC.didMove(toParentViewController: self) 


    contentScrollView.bringSubview(toFront: contentScrollView) 
    // Set up the frames of the view controllers to align 
    // with eachother inside the container view 
    print("scroll view frame bounds: \(self.pagerScrollView.frame.width)") 
    print("view frame bounds: \(self.view.frame.width)") 
    print("screen main bounds: \(UIScreen.main.bounds.size.width)") 


    let width = self.view.frame.width 

    aboutVC.view.frame = CGRect(x: 0, y: 0, width: width, height: contentScrollView.frame.size.height) 
    categoriesVC.view.frame = CGRect(x: width, y: 0, width: width, height: contentScrollView.frame.size.height) 
    reviewsVC.view.frame = CGRect(x: 2 * width, y: 0, width: width, height: contentScrollView.frame.size.height) 

    // Finally set the size of the scroll view that contains the frames 
    self.contentScrollView!.contentSize = CGSize(width: 3 * self.pagerScrollView.frame.width, height: contentScrollView.frame.size.height) 
+0

вы можете использовать pageviewcontroller. –

+0

pageviewcontroller занимает всю страницу, и это не UX, я собираюсь использовать – ahmad

+0

, используя контейнерный вид ..than, и в этом контейнере вы можете добавить pageviewcontroller –

ответ

0

Вы можете использовать Collection и вид контроллеров на деле.

+0

Я могу использовать представление коллекции, но там уже есть, поэтому я стараюсь избегать этого , Я просто сфокусирован на том, почему эта проблема происходит, и уже работает отлично, если scrollview - полный экран. – ahmad

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