在UIScrollView滚动时暂停任何操作

时间:2014-03-07 09:39:38

标签: ios objective-c uiscrollview

我有一个大的分页UIScrollView,其中包含多个图像和视图。我想要实现的是在用户浏览页面时暂停任何后台操作。我需要这个,因为应用程序正在下载和计算内容,并且滑动动画不顺畅。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

您可以使用NSOperationQueue并捕获UIScrollView委托中的scroll事件来暂停/继续操作。

- (void)viewDidLoad{
     [super viewDidLoad];
     queue=[[NSOperationQueue alloc]init];

     NSBlockOperation *intenseOperation=[NSBlockOperation blockOperationWithBlock:^{
        //do intense stuff
     }];

     [queue addOperation:intenseOperation];
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
      [queue setSuspended:NO];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
      [queue setSuspended:YES];
}

答案 1 :(得分:1)

你应该以相反的方式思考。

图像在后台下载后,使用主线程在UI中更新。

主线程正在处理UI更新。

根据您的说明,

“滑动动画不顺畅”

您正在主线程上下载图像。