К сожалению, я думаю, что это работа для OpenGL. Вы можете добиться того же эффекта в Quartz, разрезая изображение по вертикали и рисуя сегменты с различными смещениями по вертикали ... но я не думаю, что вы сможете добиться достаточно хорошей производительности, чтобы оживить его. (По крайней мере, с 1px или 2px широкими ломтиками)
Вы также можете оставить изображение неподвижным и использовать Quartz для анимации маскирующего пути, который создаст волнообразные края. Это, вероятно, не выглядело бы слишком естественным.
Насколько я знаю, Core Animation на iPhone тоже не способна сделать это. На Mac он поставляется с более продвинутыми фильтрами, но я думаю, что вы, вероятно, увидите гораздо больше подобных вещей, если бы фильтры iPhone могли это делать: -)
У OpenGL действительно есть кривая обучения, но вот что вы хотели бы сделать, чтобы добиться эффекта: Создайте плоский прямоугольник в OpenGL с несколькими вершинами вдоль его длины. Направьте камеру на прямоугольник, чтобы он выглядел плоским. Затем используйте функцию sine () для анимации вершин на месте.
Этот подход также используется для достижения эффекта ряби, и вы можете найти пример или два из них.
Извините, что принес плохие новости :-) Надеюсь, это поможет!