CATiledLayer PDF在iPad 3 Retina显示屏上表现不佳

时间:2012-03-19 23:46:17

标签: ios ipad pdf catiledlayer retina-display

我使用相当简单的代码在滚动视图中显示可缩放的PDF,并且它在iPad 2和原始iPad上运行得非常漂亮。但它在iPad 3上的速度非常缓慢。我知道我正在推动更多的像素,但渲染性能简直是不可接受的。

在iOS 5.0及更高版本中,tileSize属性被任意限制在1024,这意味着在视网膜显示器上,瓷砖的大小只有一半。有没有人找到克服这种限制的方法?

否则,是否有人找到了提高iPad 3 CATiledLayer速度的方法?

2 个答案:

答案 0 :(得分:1)

您是否尝试在图层上设置shouldRasterizeYES

答案 1 :(得分:0)

你是否在这些抽奖中运行了时间分析器,你是否排除了多余抽奖的可能性?

我有一些奇怪的双重绘图,很容易找到:

- (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
相关问题