- 新建一個定時器
/** 定時器 */
@property (nonatomic,strong) NSTimer *timer
- 添加startTimer方法在控件初始化時及scrollview結(jié)束滾動時調(diào)用
/**
* 開始定時器
*/
-(void)startTimer
{
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(nextPage) userInfo:nil repeats:YES];
//通知主線程
[[NSRunLoop mainRunLoop]addTimer:self.timer forMode:NSRunLoopCommonModes];
}
- nextPage 控制scrollview的翻頁
/**
* 下一頁
*/
-(void)nextPage
{
//下一頁
NSInteger page = self.page.currentPage + 1;
//如果當(dāng)前頁等于最后一頁雾棺,翻回第一頁
if(page == self.page.numberOfPages){
page = 0;
}
CGPoint offset = self.scrollView.contentOffset;
// 0乘以當(dāng)前scrollView的contentOffset的x即為第一頁
// 1乘以當(dāng)前scrollView的contentOffset的x即為第二頁
// ...
// contentOffset的Y不變
offset.x = page * self.scrollView.frame.size.width;
[self.scrollView setContentOffset:offset animated:YES];
NSLog(@"nextPage");
}
- 實(shí)現(xiàn)
scrollview的scrollViewDidScroll
和scrollViewWillBeginDragging
協(xié)議在開始滾動及結(jié)束滾動時控制定時器膊夹。
/**
* scrollview開始滾動
*
* @param scrollView
*/
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self stopTime];
}
/**
* scrollview結(jié)束滾動
*
* @param scrollView
* @param decelerate
*/
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
[self startTime];
}
/**
* 結(jié)束定時器
*/
-(void)stopTime
{
[self.timer invalidate];//停止定時器
self.timer = nil;
}
最終效果
滾動