我正在使用简单的代码在滚动视图中显示可缩放的PDF文档,它在iPad 2和原始iPad上运行得非常好。但是在iPad 3上速度非常慢。我知道我在推动更多像素,但渲染性能简直无法接受。
在iOS 5.0及更高版本中,tileSize属性被任意地限制在1024,这意味着在retina显示屏上,瓦片大小只有一半。有人找到克服这个限制的方法了吗?
否则,有人找到了提高iPad 3上CATiledLayer速度的方法吗?
我正在使用简单的代码在滚动视图中显示可缩放的PDF文档,它在iPad 2和原始iPad上运行得非常好。但是在iPad 3上速度非常慢。我知道我在推动更多像素,但渲染性能简直无法接受。
在iOS 5.0及更高版本中,tileSize属性被任意地限制在1024,这意味着在retina显示屏上,瓦片大小只有一半。有人找到克服这个限制的方法了吗?
否则,有人找到了提高iPad 3上CATiledLayer速度的方法吗?
shouldRasterize
为YES
吗?你对这些绘图运行了时间分析器,并排除了冗余绘图的可能性吗?
我有一些奇怪的双重绘图,可以使用以下方法轻松找到:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context
{
NSLog(@"draw %@", NSStringFromCGRect(CGContextGetClipBoundingBox(context)));
// draw pdf
}
还有许多设置可以玩耍:
tiledLayer.levelsOfDetail = 2
tiledLayer.levelsOfDetailBias = 4
tiledLayer.tileSize = self.bounds.size
CGContextSetInterpolationQuality(context, kCGInterpolationLow)
CGContextSetRenderingIntent(context, kCGRenderingIntentDefault)
self.contentScaleFactor = 1.0
[super didMoveToWindow]
之后,将其设置为当前屏幕的任何内容)。 - tc.