Thursday 4 July 2019

Edgesforextendedlayout uiviewcontroller api


Estou executando o mesmo aplicativo em iOS6 e iOS7 que tem o NavigationBar. Ele corre bem no iOS6, mas no iOS7, toda a visualização é um pouco como se não considerasse a barra de navegação. Tentei mudar a propriedade da barra superior na opção de métricas simuladas, mas não funciona. Ele considera a posição dos botões de NavigationBar no iOS6, mas no iOS7, ele considera isso na parte superior da tela. Qual é o motivo disso Agradecemos antecipadamente. No iOS 7 UI Guia de Transição para Layout e Aparência, um também mencionado - no iOS7 in, ver os controladores usar o layout de tela inteira. Se quisermos que a vista mostre a seguinte localização na barra de navegação, você pode modificar as bordas do UIViewControllers edgeForExtendedLayout desta propriedade para alcançar. EdgeForExtendedLayout é um atributo UIExtendedEdge de tipo que especifica a direção da borda a ser estendida. Como o iOS7 incentiva o layout da tela inteira, seu valor padrão é natural para ser UIRectEdgeAll, ambos estendendo-se ao redor da borda, ou seja, se houver até a vista do navegadorBar, em tabBar, a visão ampliará a cobertura para a área circundante. Se formos a seguinte visualização de configurações, a exibição não será estendida para aqueles atrás da barra, então o rótulo saiu. Ver Fonte Imprimir sim está funcionando bem para mim. Mas meu aplicativo tem Tabbacontroller alos. O resto do viewcontroller está funcionando bem. Problema no controlador de exibição Tabbar. Suponho que eu tenho uma guia 5. 1. Quando eu clicar na aba (Abrir tela aberta), ele funciona bem quando eu clicar no detalhe da lista, abra bem. Até o momento está funcionando bem 2. quando eu clicar na guia 2 (outra lista) aberta. Naquele momento em que eu clique na tabela 1 do que a tela detalhada, o quadro de exibição principal diminui para 64px. Tentei aumentar com força, mas não funcionando. O que posso fazer neste caso. Ndash Hitarth 24 de janeiro 14 às 10:00 Eu tive uma questão semelhante sozinho e descobriu que, se você desligar a transparência da barra de navegação, as visualizações cairão do mesmo modo que no iOS6. Tafkadasoh Eu entendo seu dilema e aprecio seu esforço para ajudar independentemente da NDA. Eu (respeitosamente) sugeriria que você teria sido melhor servido se você tivesse mencionado a NDA na sua resposta original e depois detalhou onde exatamente encontrar a resposta à pergunta, ou seja: quot Isso ainda está em NDA no entanto, está documentado na página NNN do guia de transição iOS7. Quot. Desta forma, você teria criado uma resposta mais útil e não se abriu até votação por baixo. Ndash Robert Altman 8 de outubro 13 às 15: 46 Iniciando 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