Я пытаюсь сделать приложение, которое анимирует рот на лице человека, очень похожее на jibjab.com (пример можно найти здесь). Чтобы сделать это, у меня был слой полностью черного цвета в качестве самого нижнего слоя, за которым следовал слой лица с обрезанной областью рта/подбородка, и, наконец, слой только рта/подбородка вверху. Когда я перемещал слой рта/подбородка вниз, обнажалась обрезанная область слоя 2, создавая эффект открытого рта. (Код можно найти здесь< /а>сильный>)
Тем не менее, анимация иногда мерцает, и, глядя на другие вопросы SO, это звучит как аппаратное ограничение, вызванное слоем с обрезанным ртом.
Единственный альтернативный подход, который я могу придумать, — вручную анимировать область черного рта вместо того, чтобы делать это неявно путем смещения слоя рта. Я бы сделал это, создав 3 слоя: 1 со всем изображением, 1 со ртом/подбородком и один для черной внутренней области рта. Я бы анимировал слой рта/подбородка, как и раньше, но использовал CGPath для черной внутренней области рта и использовал NSTimer для обновления пути каждые x секунд, чтобы он двигался в унисон с анимацией слоя рта/подбородка.
Есть ли у кого-нибудь альтернативные подходы или решение моей первой проблемы?