我正在使用相当简单的代码在滚动视图中显示可缩放的 PDF,它在 iPad 2 和原始 iPad 上运行良好。但在 iPad 3 上速度慢得惊人。我知道我在推动更多像素,但渲染性能简直不能接受。
在 iOS 5.0 及更高版本中,tileSize 属性被任意限制在 1024,这意味着图块在视网膜显示屏上显示为该大小的一半。有没有人找到克服这个限制的方法?
否则,有没有人找到提高CATiledLayer
iPad 3 速度的方法?
我正在使用相当简单的代码在滚动视图中显示可缩放的 PDF,它在 iPad 2 和原始 iPad 上运行良好。但在 iPad 3 上速度慢得惊人。我知道我在推动更多像素,但渲染性能简直不能接受。
在 iOS 5.0 及更高版本中,tileSize 属性被任意限制在 1024,这意味着图块在视网膜显示屏上显示为该大小的一半。有没有人找到克服这个限制的方法?
否则,有没有人找到提高CATiledLayer
iPad 3 速度的方法?
你试过在图层上设置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