2017-06-29 59 views
3

我已用定时器来实现的UIPageViewController自动滚动每5秒后是这样的:UIPageViewController滚动自动发出

 _bannerTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 
             target:self 
             selector:@selector(loadNextController) 
             userInfo:nil 
             repeats:YES]; 


    - (void)loadNextController 
     { 

     self.index++; 

     HeaderAdVC *nextViewController; 
     if(self.index>arrayImages.count-1) 
     { 
      self.index=0; 
      [pageIndicator setCurrentPage:0]; 
      nextViewController = [self viewControllerAtIndex:0]; 
     } 
     else 
     { 
      nextViewController = [self viewControllerAtIndex:self.index]; 
     } 


     [pageIndicator setCurrentPage:self.index]; 
     [pageController setViewControllers:@[nextViewController] 
           direction:UIPageViewControllerNavigationDirectionForward 
            animated:YES 
           completion:nil]; 


    } 

以及去除所述计时器在viewWillDisappear

-(void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 

    [_bannerTimer invalidate]; 
} 

问题:

我的问题是当loadNextController方法被称为我的应用程序最高回应。 如果我切换到下一页仍然在每个视图上都遇到同样的问题。

+0

应该停止计时器在loadNextController –

+0

我m无效定时器'viewWillDisappear' –

+0

我可以看到你的错误控制台吗? –

回答

1

做到像下面的一些变化,做好后台线程所有non-ui任务,并在主线程所有UI操作,试试这个

- (void)loadNextController 
{ 

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){ 

     self.index++; 

     HeaderAdVC *nextViewController; 
     if(self.index>arrayImages.count-1) 
     { 
      self.index=0; 
      [pageIndicator setCurrentPage:0]; 
      nextViewController = [self viewControllerAtIndex:0]; 
     } 
     else 
     { 
      nextViewController = [self viewControllerAtIndex:self.index]; 
     } 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      [pageIndicator setCurrentPage:self.index]; 
      [pageController setViewControllers:@[nextViewController] 
            direction:UIPageViewControllerNavigationDirectionForward 
             animated:YES 
            completion:nil]; 
     }); 



    }); 
} 

我希望这将帮助你..

+0

谢谢这对我有用...... :) –