这是代码:
https://www.dropbox.com/s/o42wy36x4qhrbpt/PDFScroller.zip
我使用了WWDC 2010的PhotoScroller
示例代码,该代码实现了嵌套的UIScrollViews
用于缩放,在一个UIScrollView
中用于分页,并替换了我认为仅需最少量的代码以显示多页PDF而不是图像。
它能正常工作。但是在我的iPhone4上速度很慢,大约需要三秒钟才能绘制第一页,甚至在我的iPod Touch上也更慢。我可以看到它正在绘制单个图块。这个相同的PDF在另一个使用简单的CATiledLayer
/UIScrollView
和触摸事件来更改页面的实现中已经更快地打开,没有可见的图块绘制。我想使用这个PhotoScroller
技术,非常好。
我用Instruments中的CPU Sampler观察了它,似乎不是PDF渲染代码的问题,而是时间花费在线程和消息传递上。如果有人能帮助指出这个示例产生开销的原因,我会很感激。
谢谢,
Jim
更新1:我最初使用的是TilingView
类技术,来自定义样本代码。
+ (Class) layerClass {
return [CATiledLayer class];
}
然后在- (void)drawRect:(CGRect)rect
中进行绘制,但是转而尝试使用显式的CATiledLayer
子类以查看是否有所不同,但结果并没有改变,因此我将代码保留原样发布在这里。TilingView中还存在一个遗漏的[tiledLayer release];
泄漏。