Pergunta

Estou construindo um aplicativo com recursos de visualização de imagens. Eu lutei com a besta do UIScrollView no chão (espero postar meu conhecimento do ScrollView RSN) e agora estou tentando duplicar alguns dos outros efeitos visuais do aplicativo de fotos do iPhone. Especificamente, ao visualizar uma imagem, eu gostaria de dissolver os controles e barra.

Eu tenho um método que alterna a visibilidade da barra de status, barra de navegação e barra de guias, deixando apenas o scrollView com uma imagem. O scrollView é uma tela cheia. Eu tenho um cronômetro que dispara 3 segundos depois que o usuário faz alguma coisa (explora a tela única, visualiza a próxima imagem, etc.) e, no método do timer, chamo meu método para desligar as barras. Uma única torneira da tela gira nas barras. Aqui está o método para alternar o estado de tela inteira.

- (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];
    }
}

Isso basicamente funciona, mas não parece tão bom quanto o aplicativo de fotos. Estou animando os valores alfa, pois acredito que isso se parece mais com o aplicativo Fotos em vez de usar os métodos ocultos com animação disponíveis. Meu problema é fazer o mesmo para a barra de status.

Minhas perguntas: (1) Existe um uiview para a barra de status? (2) Existe uma maneira de alterar a propriedade Alpha da barra de status? (3) O statusbar está em outra UIWindow? (4) Existe outra maneira de conseguir isso usando métodos "legais" (preciso colocar este aplicativo na App Store)?

Eu larguei a propriedade Windows da UIApplication e havia apenas 1 janela e eu rastei a hierarquia de visualizações e não havia uma visão óbvia para a barra de status.

alguma ideia?

Foi útil?

Solução

A barra de status é criada pelo próprio trampolim, é da classe sbstatusbar (que o IIRC herda da UIWindow). Não é acessível para aplicativos da App Store.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top