很多时候,我们需要在应用中添加广告,就需要它定时滚动,在iphone上也是一样的需要。
首先需要初始化一个NSTimer,且声明一个全局NSInteger类型。
NSTimer *timer;
NSInteger adCurrIndex;
在方法:viewDidLoad,初始化
timer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(adScrollByTime) userInfo:nil repeats:YES];
实现方法:adScrollByTime
-(void)adScrollByTime
{
if (adCurrIndex == AdvData.count - 1) {
adCurrIndex = -1;
}
adCurrIndex ++;
[_adsScrollView setContentOffset:CGPointMake(adCurrIndex * _adsScrollView.frame.size.width, 0) animated:YES];
}
在UIScrollView 回调函数中,需要实现两个方法
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
timer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(adScrollByTime) userInfo:nil repeats:YES];
adCurrIndex = scrollView.contentOffset.x / scrollView.frame.size.width;
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[timer invalidate];
timer = nil;
}
ok,现在就实现了,UIScrollView的定时滚动了,并且你拖动时,也会按照你拖动后的轨迹滚动。