Ich habe eine PageViewController
erstellt, um zwischen verschiedenen View Controllern zu wechseln, und ich möchte zeigen, welche Seite wir sehen. Ich fügte ein pageControl
hinzu und gab es den folgenden Code.UIPageControl zum Anzeigen der aktuellen Seite
pageControl.currentPageIndicatorTintColor = UIColor.blueColor()
pageControl.pageIndicatorTintColor = UIColor.lightGrayColor()
pageControl.numberOfPages = pages.count
Der vollständige Code:
import UIKit
class ViewControllerSportinfrastructuur: UIViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
@IBOutlet weak var pageControl: UIPageControl!
var pageViewController: UIPageViewController!
let pages = ["PageOneViewController", "PageTwoViewController"]
//MARK: - page view controller data source
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if let index = pages.indexOf(viewController.restorationIdentifier!) {
if index > 0 {
return viewControllerAtIndex(index - 1)
}
}
return nil
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
if let index = pages.indexOf(viewController.restorationIdentifier!) {
if index < pages.count - 1 {
return viewControllerAtIndex(index + 1)
}
}
return nil
}
func viewControllerAtIndex(index: Int) -> UIViewController? {
let vc = storyboard?.instantiateViewControllerWithIdentifier(pages[index])
return vc
}
override func viewDidLoad() {
super.viewDidLoad()
if let vc = storyboard?.instantiateViewControllerWithIdentifier("MyPageViewController") {
self.addChildViewController(vc)
self.view.addSubview(vc.view)
pageViewController = vc as! UIPageViewController
pageViewController.dataSource = self
pageViewController.delegate = self
pageViewController.setViewControllers([viewControllerAtIndex(0)!], direction: .Forward, animated: true, completion: nil)
pageViewController.didMoveToParentViewController(self)
pageControl.currentPageIndicatorTintColor = UIColor.blueColor()
pageControl.pageIndicatorTintColor = UIColor.lightGrayColor()
pageControl.numberOfPages = pages.count
}
}
weiß jemand, was Code, ich sollte die aktuelle Seite einrichten verwenden? Danke im Voraus!
Würde es nicht empfehlen Sie den Code auf diese zu stützen, wenn Sie aktiviert haben Scrollen. Wenn Sie Scrollen aktiviert haben, kann ein Benutzer nicht bis zum Ende oder bis zum Ende und schnell zurück scrollen und in diesen Fällen habe ich festgestellt, dass diese Methoden tatsächlich mit dem aktuellen ViewController zu tun haben. Wenn Sie diesen Fehler besser vermeiden möchten, verwenden Sie die UIPageViewController-Delegate-Methode func pageViewController didFinishAnimating und suchen Sie bei der Überprüfung nach "completed" den aktuellen View-Controller als pageViewController.viewControllers.first ab – Fawkes