Pergunta

Eu tenho um aplicativo principalmente-navegação-bar-driven. Alguns casos exigem a apresentação de uma visão modal, e um desses casos exige a ocultação da barra de status. No entanto, mesmo se eu esconder a barra de status antes de apresentar o ponto de vista modal, a vista é compensada por 20 pixels.

Mesmo se eu definir o quadro da visão modal a 0, -20320480 após o aparece vista, ele corta a parte superior da vista.

Eu também quero que o usuário seja capaz de revelar a barra de status (e uma barra de ferramentas) quando tocar no ecrã, da mesma forma o player de vídeo funciona. Então eu definir o estilo de preto transparente para esta tela, e espero que se esconder ou mostrar a barra de status não causaria o fim de saltar para cima e para baixo.

Foi útil?

Solução

Vendo do seu comentário abaixo que lhe são dirigidas iPhone OS 2.x, eu tenho uma sugestão que possa ajudar.

Antes de apresentar seu ponto de vista modal, fazer algo como isto:

  [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
  [[self view] setFrame:CGRectMake(0, 0, 320, 480)];

Certifique-se de que a sua visão modal realmente é 480px de altura - uma vez que foi enganado pelo espaço 20px vazio na parte inferior. Transformaram out foi porque minha visão ainda estava 460px de altura (a conta para a barra de status) para que o código realmente funcionava, mas a minha visão não era a altura certa.

Quando escondendo sua visão modal, isso funciona:

[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
[[self view] setFrame:CGRectMake(0, 20, 320, 460)];

Você pode ter que mexer o código um pouco se você estiver usando presentModalViewController - Eu tentei isso usando -addSubview porque eu estava usando uma animação personalizada. Mas os princípios básicos deve ser o mesmo (ou seja, a mudança de quadro da vista pai).

Outras dicas

Você já olhou para o wantsFullScreenLayout propriedade em UIViewControllers?

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