我正在尝试制作一个应用程序来为人脸上的嘴巴设置动画,就像 jibjab.com 一样(示例可以在这里找到)。为了做到这一点,我有一层全黑作为最底层,然后是一张嘴巴/下巴区域被剪掉的脸层,最后是顶部只有嘴巴/下巴的一层。当我向下移动嘴/下巴层时,第 2 层的裁剪区域暴露出来,给人一种张开嘴的效果。(代码可以在这里找到)
不过动画偶尔会闪烁,再看其他SO问题,听上去好像是剪掉了嘴巴的图层造成的硬件限制。
我能想到的唯一替代方法是手动为黑嘴区域设置动画,而不是通过嘴层的位移隐式完成。我将通过创建 3 层来做到这一点:1 层用于整个图像,1 层用于嘴/下巴,一层用于黑色内口区域。我会像以前一样为嘴/下巴层设置动画,但对黑色的嘴内区域使用 CGPath,并使用 NSTimer 每 x 秒更新一次路径,以便它与嘴/下巴层动画一致移动。
有没有人有任何替代方法或解决我的第一个问题的方法?