Кнопка падения iPhone (анимация) - PullRequest
0 голосов
/ 06 марта 2012

Можно ли сделать что-то подобное?

Когда я нажимаю на кнопку, мне нужна следующая анимация: кнопка, чтобы установить какой-то альфа-фильтр, и начинает падать, как указано стрелкой, она исчезает навкладка.

Можете ли вы сказать мне, как это сделать?Большое спасибо ...

Вот URL изображения: http://img534.imageshack.us/img534/8149/screenqx.jpg

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Это определенно возможно, но есть некоторые проблемы, которые вам нужно преодолеть. Во-первых, UIBarButtonItem не является UIView. Одним из способов является циклический просмотр подпредставлений UIToolbar или UINavigationBar. Другой способ - выяснить положение кнопки. Другой способ - получить представление с помощью частного API, если вы не отправляете его в AppStore.

Как только у вас появится представление, вы можете переместить его в суперпредставление UIToolbar или UINavigationBar или же вы можете создать представление поверх этого (и скрыть настоящий UIBarButtonItem, поскольку вы сделали это). Последнее сложнее, потому что имитировать внешний вид UIBarButtonItem с рамками по умолчанию нелегко.

Теперь вам нужно как-то получить центр UITabBarItem. Вы можете использовать приватный API или циклически просматривать подпредставления.

Создайте CGPath, используя функции Quartz или UIBezierPath. Начальная точка будет центром кнопки, а конечная точка будет центром UITabBarItem.

Создайте CAKeyFrameAnimation и прикрепите указанный CGPath.

Создайте CABasicAnimation для анимации непрозрачности.

Добавьте оба в CAAnimationGroup.

Присоедините группу анимации к CALayer вида кнопки.

Убедитесь, что вы также установили положение и альфа-канал, чтобы предотвратить переход вида назад в исходное положение после анимации.

После того, как вы прикрепите анимационную группу, анимация должна запуститься, поэтому убедитесь, что вы делаете все это в методе выбора кнопки.

0 голосов
/ 07 марта 2012

Вы не можете реально переместить его из вида в вид, поскольку ваши виды могут обрезаться, и тогда вы получите кадры только с частичным изображением.Вероятно, лучше всего создать на лету вид, охватывающий весь экран, скопировать изображение кнопки в вид в исходной точке, удалить кнопку из исходного вида, а затем анимировать это изображение в том месте, где вы хотите его разместить.иди, затем добавь кнопку в конечный пункт назначения.

...