Tuesday 10 April 2018

Edgesforextendedlayout uiviewcontroller transparent


Desenvolvimento de IOS - caminho de aprendizagem do rookie: (twenty-four) - iOS7View é para resolver este artigo é copiar o software, (o endereço original:) Se a vista dividida usada no iPad e a imagem de fundo UINavigationBar, para a barra de status é Sempre escuro UINavigationController irá alterar a altura de seu UINavigationBar para 44 pontos ou 64 pontos, dependendo de um conjunto bastante estranho e indocumentado de restrições. Se o UINavigationController detectar que o topo do seu quadro viewrsquos é visualmente contíguo com o seu UIWindowrsquos top, ele desenha sua barra de navegação com uma altura de 64 pontos. Se o seu top viewrsquos não for contíguo com o top UIWindowrsquos (mesmo que desligado por apenas um ponto), ele desenha sua barra de navegação da maneira tradicional com uma altura de 44 pontos. Essa lógica é executada pelo UINavigationController, mesmo que sejam várias crianças dentro da hierarquia do controlador de exibição de sua aplicação. Não há como evitar esse comportamento. Altura é UINavigationBar auto ajustado para 44 ou 64, os métodos de predição não determinam o. Mas, como UINavigationBar, o fundo da imagem é a altura de 44. No final de uma altura de 64, as imagens transparentes do alto esquerdo 20px Os internautas têm uma solução O limite de atributos de exibição do IOS7 que se estende: edgesForExtendedLayout, O valor padrão é UIExtendedEdgeAll. Quanto a UIExtendedEdgeNone, deve notar-se que na próxima versão do IOS7 será bug. Então, aqui em Riga O UIViewController viewDidLoad é a solução perfeita para este problema se ((UIDevicecurrentDevice systemVersion doubleValuegt7.0)) Começando no iOS7, os controladores de exibição usam o layout de tela inteira por padrão. Ao mesmo tempo, você tem mais controle sobre como ele expõe seus pontos de vista, e isso é feito com essas propriedades: basicamente, com essa propriedade, você define quais lados de sua exibição podem ser estendidos para cobrir toda a tela. Imagine que você empurre um UIViewController para um UINavigationController. Quando a visão desse controlador de visualização é estabelecida, ele começará onde a barra de navegação termina, mas essa propriedade irá definir quais lados da vista (superior, esquerda, inferior, direita) podem ser estendidos para preencher a tela inteira. Deixe-o com um exemplo: Aqui você não está definindo o valor de edgesForExtendedLayout. Portanto, o valor padrão é tomado (UIRectEdgeAll), então a vista amplia seu layout para preencher a tela inteira. Este é o resultado: como você pode ver, o fundo vermelho se estende por trás da barra de navegação e da barra de status. Agora, você vai definir esse valor para UIRectEdgeNone. Então você está dizendo ao controlador de exibição para não estender a exibição para cobrir a tela: Esta propriedade é usada quando sua exibição é UIScrollView ou similar, como um UITableView. Você quer que sua mesa comece onde a barra de navegação termina, porque você não verá todo o conteúdo se não, mas ao mesmo tempo você deseja que sua tabela cubra toda a tela ao deslocar-se. Nesse caso, definir bordasForExtendedLayout para None não funcionará porque sua tabela começará a deslizar para onde a barra de navegação termina e não vai atrasar. Aqui é onde esta propriedade é útil, se você deixar o controlador de exibição ajustar automaticamente as inserções (configurando esta propriedade para SIM, também o valor padrão), ela adicionará inserção no topo da tabela, então a tabela começará onde a navegação O bar termina, mas o pergaminho cobrirá toda a tela. Isto é quando é definido como NÃO: E SIM (por padrão): Em ambos os casos, a tabela se desliza para trás da barra de navegação, mas no segundo caso (SIM), ele irá começar por baixo da barra de navegação. Esse valor é apenas uma adição aos anteriores. Se a barra de status for opaca, as vistas não serão estendidas para incluir a barra de status também, a menos que este parâmetro seja SIM. Então, se você estender sua visão para cobrir a barra de navegação (edgeForExtendedLayout para UIRectEdgeAll) e o parâmetro é NO (padrão), ele não cobrirá a barra de status se for opaco. Se algo não estiver claro, escreva um comentário e eu responda. Como o iOS sabe o que o UIScrollView usa para usar o iOS, aceita a primeira sub-visualização na visualização do seu viewcontrollers, de modo que o do índice 0 e, se for uma subclasse do UIScrollView, aplica as propriedades explicadas a ele. Claro, isso significa que o UITableViewController funciona por padrão (uma vez que o UITableView é a primeira visualização).

No comments:

Post a Comment