Как сделать анимацию UIBarButtonItem? - PullRequest
5 голосов
/ 07 мая 2010

В приложении iPod на iPhone есть UIBarButtonItem в правой верхней панели инструментов, который переключается между списками песен и треков для альбома. Когда вы выбираете кнопку, она сама переворачивает анимацию.

Есть ли способ сделать это с:

CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];

[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:[self superview] cache:YES];

Нужно ли создавать UIBarButtonItem с initWithCustomView и initWithImage для достижения этой цели?

Ответы [ 2 ]

8 голосов
/ 08 мая 2010

UIBarButtonItem не является дочерним элементом какого-либо класса UIView, поэтому не может быть анимирован. Такие анимации (как будто Apple Maps или iPod), вероятно, являются частными API.

Тем не менее, грубым обходным решением является создание UIBarButtonItem с использованием initWithCustomView, а затем анимирование отражения внутри этого представления. Тем не менее, это может быть довольно громоздким - вам нужно будет предоставить собственную графику границы для кнопки.

Надеюсь, это было полезно, Пол

2 голосов
/ 17 февраля 2013

Я сделал нечто подобное. У меня есть UIBarButtonItem, который переворачивается горизонтально, когда текстовое поле получает фокус. Чтобы добиться этого, я использовал кнопку с пользовательским UIView, внутри которого я поместил прозрачную панель инструментов, содержащую элемент кнопки готовой панели.

Чтобы перевернуть кнопки, я использую методы transitionFromView:toView:options:completion: со старой и новой панелью инструментов в качестве видов от и до.

Это немного накладно, но вы можете придерживаться кнопок панели Apple по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...