2011-08-18 82 views
0

我正在使用pdf阅读器应用程序。我正在使用CALayer渲染PDF内容。我使用滑动手势浏览页面。问题是,如果用户尝试在图层渲染开始后转到下一页或上一页,在完成将当前pdf页渲染到图层后执行“正在下一页”操作。我想要停止当前页的渲染立即刷卡发生和下一页应该开始在layer.any想法请帮助。停止更新iPhone中的CALayer内容

更新: 这里是我的代码

-(void)loadSinglePageWithWidth:(float)width andHeight:(float)height{ 
    draw=0; 
    NSLog(@"before draw"); 
    [markupView.layer insertSublayer:renderingLayer1 above:tiledLayer1]; 
    loadingThread=[[NSThread alloc] initWithTarget:self selector:@selector(loadSinglePage) object:nil]; 
    [loadingThread start]; 
} 
-(void)loadSinglePage{ 
    [renderingLayer1 setNeedsDisplay]; 
} 

只要我一刷卡,我的操作方法,代码是这样写

[loadingThread cancel]; 
[loadingThread release]; 
loadingThread=nil; 

即使我取消 “loadingThread” drawLayer:方法的执行似乎是running.am我纠正这个线程的方法?drawLayer:代码被执行的线程,我用它来调用setNeedsDisplay方法?

回答

0

我认为最好的解决方案是在单独的线程中进行渲染。完成后,只需在屏幕上显示渲染图像即可。如果没有,您可以随时取消操作。

+0

我试图与线程如你所说的方式,但它显示像“丢失或无效图像'宽度”值”如果在渲染和崩溃刷卡到其他页面GDB一些错误。 – Hariprasad

+0

这并不意味着这种方法将无法正常工作:)您可以尝试再次实施它。如果您提供了一些代码,我们可能会找到该错误。 – Anton