是否可以在UIPageViewController iOS中自动滚动

时间:2016-02-22 11:55:00

标签: ios swift uipageviewcontroller

是否可以使用Swift在UIPageViewController iOS中自动滚动? 这意味着用户无需手动滚动。它会自动运行,也可以使用无限页面。

3 个答案:

答案 0 :(得分:1)

您需要设置定时器。 下面的代码应该写在viewDidLoad()方法

NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "moveToNextPageTwoSecond", userInfo: nil, repeats: true)

此计时器每2秒调用一次moveToNextPageTwoSecond函数。

func moveToNextPageTwoSecond (){

    let pageWidth:CGFloat = CGRectGetWidth(self.scrollView.frame)
    let maxWidth:CGFloat = pageWidth * 4
    let contentOffset:CGFloat = self.scrollView.contentOffset.x

    var slideToX = contentOffset + pageWidth

    if  contentOffset + pageWidth == maxWidth{
        slideToX = 0
    }
    self.scrollView.scrollRectToVisible(CGRectMake(slideToX, 0, pageWidth, CGRectGetHeight(self.scrollView.frame)), animated: true)
}

答案 1 :(得分:0)

您可以使用以下代码滚动到UIPageViewController中的特定页面(第X页):

// Get the View Controller for the page X of the Page View Controller and store in an array
let pageXViewController: UIViewController = pageXViewControllerAtIndex(X)!
let viewControllers: NSArray = [pageXViewController]
// Set the first page of the Page View Controller
pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: true, completion: nil)

答案 2 :(得分:-2)

这样的第一条规则......查看文档。

UIPageViewController docs

您会看到一个方法...... - setViewControllers:direction:animated:completion:,其中包含说明... Sets the view controllers to be displayed.

这就是你要找的东西。