我们经常会遇到需要做无限轮播Banner的需求,仔细分析一下,可以拆分为两个需求:
可以自动滚动到下一页
不管是向前或者向后,永远有下一页
需求一:自动滚动
原理:通过定时任务来实现自动滚动
实现方式有很多种,例如GCD,NSTimer等,具体实现方式这里不展开说明了,简单写几个例子:
GCD的使用
// GCD实现定时任务
dispatch_source_t timer;
timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0));
dispatch_source_set_timer(timer,
dispatch_time(DISPATCH_TIME_NOW, 5*NSEC_PER_SEC),
5*NSEC_PER_SEC,
0);
dispatch_source_set_event_handler(timer, ^{
dispatch_suspend(timer);
});
dispatch_resume(timer);
NSTimer的使用
// NSTimer
- (void)startTimer {
[self stopTimer];
self.repeatTimer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@s