27

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

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

否则,有没有人找到提高CATiledLayeriPad 3 速度的方法?

4

2 回答 2

1

你试过在图层上设置shouldRasterizeYES

于 2012-04-26T09:26:47.570 回答
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
于 2012-09-27T07:36:36.817 回答