在计时器的帮助下,Swift 4 在页面视图控制器中自动滑动

Posted

技术标签:

【中文标题】在计时器的帮助下,Swift 4 在页面视图控制器中自动滑动【英文标题】:Swift 4 auto slide in page view controller with help of timer 【发布时间】:2018-10-06 07:12:35 【问题描述】:

我正在尝试使用swift 4page view controller 中创建auto sliding。在这里,我尝试了下面的代码,但我得到了结果,它首先重复图像的index。我需要知道,如何实现下一个索引的移动?

// Image array
var name = ["one.png","two.png","three.png","four.png"]

// Timer in viewdidload()
tTime = Timer.scheduledTimer(timeInterval: 4, target: self, selector: #selector(changeSlide), userInfo: nil, repeats: true)

// Timer function call (The problem is here...)
@objc func changeSlide()  
        let pageContentViewController = self.viewControllerAtIndex(index: 0)
        self.pageViewController.setViewControllers([pageContentViewController!], direction: UIPageViewControllerNavigationDirection.forward, animated: true, completion: nil)
 

【问题讨论】:

在 viewdidload() 中添加 timer.starttimer() 方法 【参考方案1】:
    // Image array
    var name = ["one.png","two.png","three.png","four.png"]
    var currentIndex = -1

    // Timer in viewdidload()
    tTime = Timer.scheduledTimer(timeInterval: 4, target: self, selector: #selector(changeSlide), userInfo: nil, repeats: true)


    // Timer function call
    @objc func changeSlide() 
   
    currentIndex = (currentIndex == name.count - 1) ? 0 : currentIndex + 1

    let pageContentViewController = self.viewControllerAtIndex(index: currentIndex)
    self.pageViewController.setViewControllers([pageContentViewController!], direction: UIPageViewControllerNavigationDirection.forward, animated: true, completion: nil)

【讨论】:

或者你可以这样做:currentIndex = (currentIndex == name.count - 1) ? 0 : currentIndex + 1 ;)

以上是关于在计时器的帮助下,Swift 4 在页面视图控制器中自动滑动的主要内容,如果未能解决你的问题,请参考以下文章

使用我的视图控制器 swift 4 中的按钮使用 UIPageViewController 更改页面

在两个视图控制器之间展开 Segue 来回 Swift

swift 4 中使用 performSegue 打开的关闭页面时,如何在视图控制器和 TableViewController 之间传递数据?

Xcode Swift 3:计时器和 Segue 视图控制器错误

当使用在swift 4中使用performSegue打开的dismiss页面时,如何在视图控制器和TableViewController之间传递数据?

Swift - 带有 4 个 UIViewController 的 UIPageViewController