ユーザーがペイントしたり、他のビューを追加できるビューからイメージを取得しようとしています。 iPad1の場合& 2これまでのところすべてがうまくいきました。 しかしiPad3では、それは犬のように動作します。 私はレイヤーのrenderInContextメソッドを使用しています。iPad 3 renderInContext slow - レンダリングのパフォーマンスが悪い
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.viewDrawableViewContainer.frame.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.viewDrawableViewContainer.frame.size);
[self.viewDrawableViewContainer.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
私は、これはおそらく、ipad2の1、 に等しいですが、それは約1秒かかり、CPUによって引き起こされる知っています。ユーザーがペイントまたは追加するほど、レンダリングに時間がかかります。時には5秒までは実際には受け入れられません。 パフォーマンスを向上させるオプションはありますか? レンダリングの品質を低く設定する可能性があります。最高の網膜解像度でレンダリングする必要はありません。
私は助けていただきありがとうございます!事前に感謝します
どのようなビューが描画されるのでしょうか?もしそうなら、あなたはバックグラウンドで描画を行い、結果をキャッシュすることができますが、これはデバイスをフリーズしません。 –
ヒントのおかげで、私はバックグラウンドで画像を作成することができましたが、問題は、ユーザーがテキストを書いてタップすることです。その後、私は移動をタップした後にビューが閉じられるので、ユーザーのやりとりの直後に図面を作成する必要があります。しかし、ありがとう、おそらく、私は終了アニメーションが実行中にレンダリングすることができます。私はそれを試してみましょう...だから、レンダリングのパフォーマンスを向上させる他の方法はありません? – Alexander
不幸にも、多くのピクセルと本質的に同じCPU上で4回チャーティングするだけでは、パフォーマンスが低下します。アニメーションでそれをマスクすることは、問題を解決するための素晴らしい方法であり、Appleがそれをどうやって行うのかです。 ユーザーがビューに描画することを許可している場合は、何を描画していますか?ビューをコンテキストにレンダリングするのではなく、ただちに引き出すことができるビューを裏付けるUIImageはありませんか? –