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];
}
>