Xcode 在UIScrollView上创建循环

Xcode 在UIScrollView上创建循环,xcode,loops,uiscrollview,swift3,Xcode,Loops,Uiscrollview,Swift3,我可以在视图上来回滚动,但我不能循环视图,因此当我在ViewController3上时,它会向后滚动,在ViewController1上向前滚动,以创建循环。我该怎么做 下面的代码是我到目前为止所做的 import UIKit class ViewController: UIViewController { @IBOutlet weak var scrollView: UIScrollView! override func viewDidLoad() { super.viewDid

我可以在视图上来回滚动,但我不能循环视图,因此当我在ViewController3上时,它会向后滚动,在ViewController1上向前滚动,以创建循环。我该怎么做

下面的代码是我到目前为止所做的

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()

    let vc0 = ViewController0(nibName: "ViewController0", bundle: nil)

    var frame0 = vc0.view.frame
    frame0.origin.x = self.view.frame.size.width
    vc0.view.frame = frame0

    self.addChildViewController(vc0)
    self.scrollView.addSubview(vc0.view)
    vc0.didMove(toParentViewController: self)

    let vc1 = ViewController1(nibName: "ViewController1", bundle: nil)

    var frame1 = vc1.view.frame
    frame1.origin.x = self.view.frame.size.width
    vc1.view.frame = frame1

    self.addChildViewController(vc1)
    self.scrollView.addSubview(vc1.view)
    vc1.didMove(toParentViewController: self)

    let vc2 = ViewController2(nibName: "ViewController2", bundle: nil)

    var frame2 = vc2.view.frame
    frame2.origin.x = self.view.frame.size.width * 2
    vc2.view.frame = frame2

    self.addChildViewController(vc2)
    self.scrollView.addSubview(vc2.view)
    vc2.didMove(toParentViewController: self)

    let vc3 = ViewController3(nibName: "ViewController3", bundle: nil)

    var frame3 = vc3.view.frame
    frame3.origin.x = self.view.frame.size.width * 3
    vc1.view.frame = frame3

    self.addChildViewController(vc3)
    self.scrollView.addSubview(vc3.view)
    vc3.didMove(toParentViewController: self)

    self.scrollView.contentSize = CGSize(width: Double(self.view.frame.size.width * 4), height: Double(self.view.frame.size.height - 66))

}



override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

实际上,我建议您完全放弃使用UIScrollView,改用UIPageViewController。这使得这类事情变得微不足道,因为您一次只需要提供一个页面,而进行您描述的那种无限滚动或循环滚动很容易,因为每次您被要求提供循环系列中的“下一个”视图控制器。此外,它还为您处理整个亲子舞蹈(并不是说您的操作方式有任何问题)。

好的,谢谢。你能告诉我更多关于如何使用UIPageViewController的细节吗?这里有一个可下载的示例项目:在你的情况下,在第三个VC之后,你不需要返回
nil
,你只需要返回第一个VC和presto,你正在循环。谢谢,我会看一看。对不起,我有点困惑,您向我展示的示例项目是AppDelegate.swift,但我一直在使用ViewController.swift。我只是复制代码并将其粘贴到我的ViewController或AppDelegate中吗?嗯,您永远不应该复制代码并粘贴它。我正在展示这个概念是如何运作的。您应该使用这些代码帮助您理解页面视图控制器,然后编写自己的代码。