2014-03-07 59 views
0

我有一个大的分页的UIScrollView与几个图像和视图。我试图达到的目的是在用户浏览页面时暂停任何后台操作。我需要这个,因为该应用程序正在下载和计算的东西,刷卡动画并不顺利。UIScrollView滚动时暂停任何操作

任何想法?

感谢

+0

你在uiscrollview图像中实现了延迟加载..?从你的问题,我想你需要与延迟加载的图像,使您的滚动视图滚动.. – RAJA

回答

1

您可以使用NSOperationQueue,赶上在UIScrollView的委托暂停/继续运作的滚动事件。

- (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

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

一旦图像在后台下载,然后使用主线程在UI中进行更新。

主线程正在处理UI更新。

根据您的描述,

“的刷卡动画不顺畅”

您是在主线程下载图像。

+0

我已经下载和使用队列绘制图像。事实是,我在背景中做了很多(很多)东西。我想暂停一切,因为我没有控制一切,并不是每件事都在一个众所周知的队列中。 – user3355209

+0

你到现在为止所尝试过的。在后台下载中显示一些代码 –