как дублировать анимацию из приложения для фотографий iPhone - PullRequest
0 голосов
/ 18 января 2010

Я создаю приложение, которое имеет возможности просмотра изображений. Я боролся со зверем UIScrollView на земле (надеюсь опубликовать RSN), и теперь пытаюсь воспроизвести некоторые другие визуальные эффекты приложения для фотографий iPhone. в частности, при просмотре изображения я хотел бы убрать элементы управления и панели.

У меня есть метод, который переключает видимость строки состояния, панели навигации и панели вкладок, оставляя только вид прокрутки с изображением. Прокрутка в полноэкранном режиме. У меня есть таймер, который срабатывает через 3 секунды после того, как пользователь что-то делает (однократное касание экрана, просмотр следующего изображения и т. Д.), И в методе timerFired я вызываю свой метод, чтобы отключить полосы. одно касание экрана включает бары. вот способ переключения в полноэкранный режим.

- (void)setFullScreen:(BOOL)fullScreen {
    // reset the timer
    [myTimer invalidate];
    [myTimer release];
    myTimer = nil;

    // start animation section
    [UIView beginAnimations:nil context:nil];
        // toggle the status bar    
        [[UIApplication sharedApplication] setStatusBarHidden:fullScreen animated:YES];
        [UIView setAnimationDuration:UINavigationControllerHideShowBarDuration];
        CGFloat alpha = fullScreen ? 0.0 : 1.0;
        // change the alpha to either 0 or 1 based on hiding or showing the bars
        self.navigationController.navigationBar.alpha = alpha;
        self.tabBarController.tabBar.alpha = alpha;

    // do the animations!
    [UIView commitAnimations];

    // restart the timer after we show the bars    
    if (!fullScreen) {
        myTimer = [[NSTimer timerWithTimeInterval:3.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO] retain];
        [[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSDefaultRunLoopMode];
    }
}

Это в основном работает, НО, это не выглядит так же хорошо, как приложение для фотографий. Я анимирую альфа-значения, поскольку считаю, что это больше похоже на приложение для фотографий, а не на использование скрытых методов с доступной анимацией. Моя проблема делает то же самое для строки состояния.

мои вопросы: (1) есть ли UIView для строки состояния? (2) есть ли способ изменить альфа-свойство строки состояния? (3) находится ли строка состояния в другом окне UIWindow? (4) есть ли другой способ добиться этого, используя «легальные» методы (мне нужно положить это приложение в магазин приложений)?

Я сбросил свойство windows UIApplication, и было только 1 окно, и я просканировал иерархию представлений, и не было очевидного представления для строки состояния.

есть идеи?

1 Ответ

0 голосов
/ 18 января 2010

Строка состояния создается самой SpringBoard, она имеет класс SBStatusBar (который IIRC наследует от UIWindow).Он недоступен приложениям из магазина приложений.

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