程序员iOS DeveloperiOS进阶指南

给ScrollView添加定时器,实现图片自动滚动

2016-04-06  本文已影响1352人  飞翔的道长
/** 定时器 */
@property (nonatomic,strong) NSTimer *timer
/**
 *  开始定时器
 */
-(void)startTimer
{
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(nextPage) userInfo:nil repeats:YES];
    
    //通知主线程
    [[NSRunLoop mainRunLoop]addTimer:self.timer forMode:NSRunLoopCommonModes];
}
/**
 *  下一页
 */
-(void)nextPage
{
    //下一页
    NSInteger page = self.page.currentPage + 1;
    //如果当前页等于最后一页,翻回第一页
    if(page == self.page.numberOfPages){
        page = 0;
    }
    
    CGPoint offset = self.scrollView.contentOffset;
    // 0乘以当前scrollView的contentOffset的x即为第一页
    // 1乘以当前scrollView的contentOffset的x即为第二页
    // ...
    // contentOffset的Y不变
    offset.x = page * self.scrollView.frame.size.width;
    [self.scrollView setContentOffset:offset animated:YES];
    
    NSLog(@"nextPage");
}
/**
 *  scrollview开始滚动
 *
 *  @param scrollView
 */
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    [self stopTime];
}
/**
 *  scrollview结束滚动
 *
 *  @param scrollView
 *  @param decelerate
 */
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    [self startTime];
}
/**
 *  结束定时器
 */
-(void)stopTime
{
    [self.timer invalidate];//停止定时器
    self.timer = nil;
}

最终效果

滚动
上一篇 下一篇

猜你喜欢

热点阅读