Я бы сделал это с помощью аффинного преобразования, примененного к слою вида. Линейная алгебра не моя сильная сторона;), поэтому я не могу указать точное преобразование, но мое предположение было бы примерно таким для анимации:
- Установите альфа, чтобы исчезнуть в 0.0 или
что-то близкое к 0
- Применить преобразование, чтобы сжать два нижних угла близко к центру
- Уменьшить вид до очень маленького
- переместите центр слоя вниз в нижнюю часть экрана (или туда, куда вы хотите, чтобы он был джинном.
Это более или менее так, как я думаю, это будет работать. Возможно, вам придется анимировать эти вещи в разное время или все в одном блоке, я не совсем уверен.
Ознакомьтесь с документацией по CALayer, CABasicAnimation и CGAffineTransform.