如何让 UIPageViewController 自动滑动无限重复?

How to make UIPageViewController slide automatically with endless repeat?

如何让我的 UIPageViewController 自动滑动图片?

我已经创建并实现了一切,现在我想让它以 10 秒的时间间隔自动滑动图像...

谁能帮我解决这个问题?

每次要更改页面时都需要调用 - setViewControllers:direction:animated:completion: 方法。

您可以使用 NSTimer 触发您自己的中间方法,使用上述方法设置相应的页面。

这是我的代码:

- (UIViewController *) pageViewController: (UIPageViewController *) pageViewController viewControllerBeforeViewController:(UIViewController *) viewController
    {
        HelpPageViewController *itemController = (HelpPageViewController *) viewController;

        if (itemController.itemIndex > 0)
        {
            return [self itemControllerForIndex: itemController.itemIndex-1]; // bilo je -1
        }



       return nil;

        }

    - (UIViewController *) pageViewController: (UIPageViewController *) pageViewController viewControllerAfterViewController:(UIViewController *) viewController
    {
        HelpPageViewController *itemController = (HelpPageViewController *) viewController;

        if (itemController.itemIndex+1 < [contentImages count]) // bilo je <
        {
            return [self itemControllerForIndex: itemController.itemIndex+1];
        }

        return nil;


    }

    UIPageViewController *scrollingHeader = [self.storyboard instantiateViewControllerWithIdentifier: @"ScrollingHeader"];
        scrollingHeader.dataSource = self;

        if([contentImages count])
        {


            NSArray *startingViewControllers = @[[self itemControllerForIndex: 0]];
            [scrollingHeader setViewControllers: startingViewControllers
                                     direction: UIPageViewControllerNavigationDirectionForward

                                      animated: NO
                                    completion: nil];
        }

        self.pageViewController = scrollingHeader;
        [self addChildViewController: self.pageViewController];
        [self.view addSubview: self.pageViewController.view];



        [self.pageViewController didMoveToParentViewController: self];

在管理您的 UIPageViewController 的 class 中:

有一个属性喜欢

@property NSInteger currentIndex;

在 0 实例化它,每次更改为另一个 viewController,更新它的值 (_currentIndex++ / _currentIndex--)

然后实例化一个 NSTimer :

[NSTimer scheduledTimerWithTimeInterval:10.0
    target:self
    selector:@selector(changeController:)
    userInfo:nil
    repeats:YES];

并添加这个方法

- (void) changeController:(NSTimer*)timer
{
   UIViewController yourViewController = [self itemControllerForIndex: self.currentIndex+1];
   self.currentIndex++;
   NSArray *array = [NSArray arrayWithObjects:yourViewController] 
   [yourPageViewController setViewControllers:array direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
}

希望对您有所帮助...