Xcode 在UIScrollView上创建循环
我可以在视图上来回滚动,但我不能循环视图,因此当我在ViewController3上时,它会向后滚动,在ViewController1上向前滚动,以创建循环。我该怎么做 下面的代码是我到目前为止所做的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
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中吗?嗯,您永远不应该复制代码并粘贴它。我正在展示这个概念是如何运作的。您应该使用这些代码帮助您理解页面视图控制器,然后编写自己的代码。