私は、jibjab.com のように人の顔の口をアニメーション化するアプリを作ろうとしています (例はここにあります)。これを行うために、一番下のレイヤーとしてすべて黒のレイヤーを作成し、次に口/あごの部分を切り取った顔のレイヤーを作成し、最後に口/あごだけのレイヤーを一番上に作成しました。口/あごのレイヤーを下に移動すると、レイヤー 2 のトリミングされた領域が露出し、開いた口の効果が得られます。(コードはここにあります)
ただし、アニメーションがちらつくことがあり、他のSOの質問を見ると、口が切り取られたレイヤーによって引き起こされたハードウェアの制限のように聞こえます.
私が思いつく唯一の代替アプローチは、口のレイヤーのディスプレイスメントによって暗黙的に行うのではなく、黒い口の領域を手動でアニメーション化することです。これを行うには、3 つのレイヤーを作成します。1 つは画像全体、1 つは口/あご、もう 1 つは黒い口の内側の領域です。前と同じように口/あごのレイヤーをアニメーション化しますが、黒い口の内側の領域に CGPath を使用し、NSTimer を使用して x 秒ごとにパスを更新し、口/あごのレイヤー アニメーションと一致して動くようにします。
誰かが別のアプローチ、または私の最初の問題の解決策を持っていますか?