2015-11-20 155 views
-1

我想设置“ViewController2”作为ScrollView中的初始页面,但更改setContentOffset(CGPointMake(0,0), animated: false)将第一页设置为初始,我试着用不同的数字修改它,但它只是弄乱了页面,任何提示?设置初始ScrollView

import UIKit 

class ViewController: UIViewController { 

@IBOutlet var scrollView: UIScrollView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    scrollView.bounces = false 
    scrollView.pagingEnabled = true 
    scrollView.setContentOffset(CGPointMake(0,0), animated: false) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

} 

override func viewDidLayoutSubviews() { 
    initScrollView() 
} 

func initScrollView(){ 
    let viewController1 = storyboard?.instantiateViewControllerWithIdentifier("ViewController1") as! ViewController1 

    viewController1.willMoveToParentViewController(self) 
    viewController1.view.frame = scrollView.bounds 

    let viewController2 = storyboard?.instantiateViewControllerWithIdentifier("ViewController2") as! ViewController2 

    viewController2.willMoveToParentViewController(self) 
    viewController2.view.frame.size = scrollView.frame.size 
    viewController2.view.frame.origin = CGPoint(x: view.frame.width, y: 0) 

    let viewController3 = storyboard?.instantiateViewControllerWithIdentifier("ViewController3") as! ViewController3 

    viewController3.willMoveToParentViewController(self) 
    viewController3.view.frame.size = scrollView.frame.size 
    viewController3.view.frame.origin = CGPoint(x: view.frame.width * 2, y: 0) 

    scrollView.contentSize = CGSize(width: 3 * scrollView.frame.width, height: scrollView.frame.height) 

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

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

    scrollView.addSubview(viewController1.view) 
    self.addChildViewController(viewController1) 
    viewController1.didMoveToParentViewController(self) 
}} 

回答

0

尝试取消选择滚动视图插图调整......在VC2:

IB Screen

+0

没有改变任何东西,是否有一些特殊的代码与取消选择滚动视图插图一起使用? – Nathannn

0

通过将scrollView.setContentOffset(CGPointMake(375,0), animated: false)在viewDidlayoutSubViews加载下一个视图,请注意,我用iphone 4 ,7英寸的屏幕,所以视图控制器的宽度是375.将375更改为viewController的宽度,例如,如果您想要加载最后一页,请首先添加375至375等。

override func viewDidLayoutSubviews() { 
    initScrollView() 
    scrollView.setContentOffset(CGPointMake(375,0), animated: false) 
} 
+0

可能会因不同大小的类别而出现问题? – Ron