27

スクロールビューでズーム可能な PDF を表示するためにかなり単純なコードを使用していますが、iPad 2 と元の iPad でうまく動作しています。しかし、iPad 3 では驚くほど遅いです。より多くのピクセルをプッシュしていることはわかっていますが、レンダリング パフォーマンスはまったく受け入れられません。

iOS 5.0 以降では、tileSize プロパティは任意に 1024 に固定されています。これは、Retina ディスプレイでタイルがその半分のサイズで表示されることを意味します。この制限を克服する方法を見つけた人はいますか?

CATiledLayerそうでなければ、 iPad 3の速度を改善する方法を見つけた人はいますか?

4

2 に答える 2

1

レイヤーに設定shouldRasterizeしてみましたか?YES

于 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 に答える