как анимировать статус, вкладку и панель навигации, как в приложении для фотографий - PullRequest
1 голос
/ 27 декабря 2011

Я создаю приложение, которое использует полноэкранный режим для отображения изображения, как приложение для фотографий. Также как и приложение для фотографий, я пытаюсь сделать так, чтобы панель навигации, строка состояния и панель вкладок исчезали через некоторое время или после того, как пользователь коснулся экрана. Я немного покопался в методах анимации UIView (т.е. animateWithDuration), но понял, что мне нужно использовать Core Animation, чтобы выполнить то, что я хотел сделать.

До сих пор я возился с основной анимацией и столкнулся с кучей проблем, которые я не знаю, как решить:

a) возможно ли отложить анимацию до ее запуска (без использования отдельного потока).

б) Как использовать Core Animation для анимации строки состояния, поскольку у нас нет доступа к виду / слою строки состояния?

в) Как мне остановить анимацию, например, если пользователь нажимает на экран, когда полосы исчезают? Должен ли я сгруппировать их вместе в транзакции кошки?

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

CABasicAnimation *fader = [CABasicAnimation animationWithKeyPath:@"opacity"];
[fader setDuration:2.0];
[fader setFromValue:[NSNumber numberWithFloat:.75]];
[fader setToValue:[NSNumber numberWithFloat:0]];
[[[[self tabBarController] tabBar]layer]addAnimation: fader forKey:@"BigFade"];

CABasicAnimation *fader2 = [CABasicAnimation animationWithKeyPath:@"opacity"];
[fader2 setDuration:2.0];
[fader2 setFromValue:[NSNumber numberWithFloat:1]];
[fader2 setToValue:[NSNumber numberWithFloat:0]];
[[[[self navigationController] navigationBar]layer]addAnimation: fader2 forKey:@"BigFade2"];

Ответы [ 2 ]

3 голосов
/ 03 января 2012

Этот код прямо здесь является в значительной степени точной копией множества функций приложения для фотографий, и в нем вы можете увидеть, как сделать ваши представления прозрачными и сделать так, чтобы они исчезали через определенное время / когда пользователь нажимает экран. https://github.com/kirbyt/KTPhotoBrowser.

1 голос
/ 27 декабря 2011

Почему бы вам просто не использовать

- (void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated 
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation
- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated

с задержкой?

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