0

すべての画面にファンキーなパススタイルのメニューが表示されるiPadアプリがあります。メニューを開くと、メニュー項目が表示されるときにいくつかの素晴らしいアニメーションが表示されます。メニューの同じインスタンスがアプリ全体で常に使用され、アプリの起動時に一度だけ割り当てられ、初期化されます。

アプリの画面によって、メニューのアニメーションのパフォーマンスが大幅に異なることがあります。矛盾しているように見えるので、何がパフォーマンスの違いを引き起こしているのか理解できないようです。私が見ることができる唯一の相関関係は、DrawRectを使用したコアグラフィックスの描画がある画面では、メニューのパフォーマンスが低いように見えることです。カスタム描画がない画面では、メニューは非常にうまく機能します。ほとんどの場合、カスタム図面はグラデーションのある単純なパスです。

コアグラフィックスを使用して描画するときに既知のアニメーションパフォーマンスの問題がありますか、それとも別の理由でパフォーマンスの問題が発生しますか?機器を使用してアプリを実行しても、リークは表示されません。機器のCoreAnimationパフォーマンステスターツールでアプリを実行すると、コアグラフィックス描画を使用している画面と、それを使用していない他の画面のfpsの50%未満で実行されている画面との間に大きなFPSの不一致が見られます。

4

1 に答える 1

2

レンダリングされた影をそのまま使用すると、この問題が発生しました。

view.layer.shadowOffset = CGSizeMake(0, 0);
view.layer.shadowOpacity = .95;
view.layer.shadowRadius = 8;

ビューの「shouldRasterize」をtrueに設定することで解決しました。この 1 つの変更を行った後、アニメーションの品質が大幅に向上したことに気付きました。

view.layer.shouldRasterize = YES;
于 2012-06-22T04:13:10.857 に答える