Как реализовать эффект slurp на iPhone?

iPhone имеет частный список эффектов, которые использует Apple, например, "genieEffect" и "slurpEffect". Мне интересно, как можно было бы реализовать эффект slurp (это когда вы удаляете почтовое сообщение или заметку).

Я понимаю, как использовать Core Animation, но я не уверен, какие именно части он использует для получения этой анимации.

Ответ 1

В этом сообщении говорится об использовании частного API для эффекта: текст ссылки

Ответ 2

Кажется, это сложная комбинация двумерных и трехмерных преобразований.: -\Вы должны действительно вникать в CoreAnimation для имитации этого эффекта.

Ответ 3

Я бы сделал это с аффинным преобразованием, применяемым к слою представления. Линейная алгебра не моя сильная сторона;), поэтому я не могу указать точное преобразование, но мое предположение было бы таким, как это для анимации:

  • Установите альфа, чтобы затухать до 0.0 или что-то близкое к 0
  • Примените преобразование, чтобы усвоить два нижних угла ближе к центру.
  • Уменьшите масштаб до очень маленького
  • переместите центр слоя вниз в нижнюю часть экрана (или в любом месте, где вы хотите, чтобы он денился.

Это более или менее то, как я думаю, это сработает. Возможно, вам придется оживить эти вещи в разное время или все в одном блоке, я не совсем уверен.

Посмотрите документацию для CALayer, CABasicAnimation и CGAffineTransform.