NStime

  • 想让定时器和其他UI事件相继执行(都是优先级),调用下面方法
  • 创建定时器
调用这个方法就创建定时器并启用再加入优先级处理
- (void)startTime
{
    self.time = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(nextPage) userInfo:nil repeats:YES];
// 将time加入主线程优先级处理,普通模式
   [[NSRunLoop mainRunLoop] addTimer:self.time forMode:NSDefaultRunLoopMode];
}
调用这个方法就停止定时器,并把time设为野指针
- (void)stopTime
{
    [self.time invalidate];
    self.time = nil;
}
  • 设置定时器
- (void)nextPage
{
//    NSInteger page = self.scrollView.contentOffset.x / self.scrollView.frame.size.width + 1;
    NSInteger page = self.pageControl.currentPage + 1;
    if (page == self.pageControl.numberOfPages) {
        page = 0;
    }
    CGPoint offset = self.scrollView.contentOffset;
    offset.x = self.scrollView.frame.size.width * page;
    [self.scrollView setContentOffset:offset animated:YES];
}
  • 根据是否拖拽控制定时器
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    [self stopTime];
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    [self startTime];
}

>

results matching ""

    No results matching ""