Tuesday 18 July 2017

Bordas


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 vem a calhar, se você deixar o controlador de visualização ajustar automaticamente as inserções (definindo esta propriedade para YES, também o valor padrão) ele irá adicionar inserir para o topo da tabela, então a tabela vai 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. Este 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. Portanto, se você estender sua exibição para cobrir a barra de navegação (edgesForExtendedLayout para UIRectEdgeAll) eo parâmetro é NO (padrão) ele não vai cobrir a barra de status se o seu 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 agarra a primeira subview na visualização viewcontrollers, então a que está no índice 0 e se for uma subclasse do UIScrollView, aplica as propriedades explicadas a ela. Naturalmente, isso significa que o UITableViewController funciona por padrão (uma vez que o UITableView é a primeira visualização). Guia do Layout Uma das responsabilidades de um contêiner do controlador de exibição é o layout de suas visualizações de controladores de exibição filho. Este guia vai sobre como você pode controlá-lo. Reveal vs Peek Amount É assim que você especifica a posição horizontal da vista superior quando ela está ancorada em um lado. É importante saber a diferença entre a revelação ancorada e os valores de pontos de vista ancorados ao suportar múltiplas orientações e tamanhos de tela. Se você só precisa suportar uma orientação única em um tamanho de tela específico, a diferença não é importante. Revelar A quantidade horizontal da vista inferior para mostrar. Peek A quantidade horizontal da vista superior para mostrar. A convenção de nomenclatura para as propriedades: âncora (esquerda ou direita) (Revelar ou Peek) Quantidade. A combinação de todas as possibilidades leva a estas quatro propriedades: anchorLeftPeekAmount anchorLeftRevealAmount anchorRightPeekAmount anchorRightRevealAmount Definir a quantidade de revelar em um lado irá calcular a quantidade de espiar para o mesmo lado e vice-versa. A propriedade que você definir será um valor fixo, fazendo com que o outro seja calculado. Esta é uma propriedade incorporada no UIViewController. Heres uma descrição do iOS 7 UI Guia de Transição: A propriedade edgesForwardsExtendedLayout usa o tipo UIRectEdge, que especifica cada um dos quatro retângulos bordas, além de especificar nenhum e todos. Use edgeForExtendedLayout para especificar quais bordas de uma vista devem ser estendidas, independentemente da translucidez da barra. Por padrão, o valor dessa propriedade é UIRectEdgeAll. ECSlidingViewController usa esse valor para decidir qual das bordas das vistas se estender para o recipiente. Se uma aresta não estiver estendida, ela será colocada no guia de layout. Este é o mesmo comportamento que os contêineres do controlador de visão UIKit, exceto que as bordas laterais têm significado. Deixando UIRectEdgeTop fora da máscara edgesForFieldedLayout colocará a borda superior no guia de layout superior. Deixando UIRectEdgeBottom para fora da máscara edgesForFieldedLayout colocará a borda superior no guia de layout inferior. Deixando UIRectEdgeLeft para fora da máscara edgesForFundamentExtendido irá colocar a borda esquerda para onde a borda direita vistas superior seria quando ancorado à esquerda. Isso afeta somente os controladores de exibição usados ​​como underRightViewController. Ele pode ocupar a largura total do recipiente ou então ele será igual à quantidade de revelação (se ele é fixo ou calculado). Deixando UIRectEdgeRight para fora da máscara edgesForFieldedLayout irá colocar a borda direita para onde a borda esquerda das vistas de cima seria quando ancorado à direita. Isso afeta somente os controladores de exibição usados ​​como underLeftViewController. Ele pode ocupar a largura total do recipiente ou então ele será igual à quantidade de revelação (se ele é fixo ou calculado). O layout para as vistas superior e inferior pode ser personalizado. Isso é feito criando um objeto que está em conformidade com o protocolo ECSlidingViewControllerLayout e retorná-lo no método de delegado de controladores de exibição deslizante: slidingViewController: layoutControllerForTopViewPosition: ECSlidingViewControllerLayout tem um único método a ser implementado: Você deve retornar um CGRect representando um quadro para o viewController determinado e TopViewPosition. Você pode retornar CGRectInfinite para alternar no layout padrão. Retorna um CGRect que é calculado com base no quadro de visualizações do slidingViewController s. Se for corrigido ou baseado no quadro das telas, as mudanças de rotação e limites podem quebrar o layout. Posicione a vista superior de acordo com os valores ancorados do slidingViewController s. Mantenha a semântica da topViewPosition. Por exemplo, se a topViewPosition é ECSlidingViewControllerTopViewPositionAnchoredRight. Em seguida, posicione a vista superior em algum lugar para a direita. Desde o acima são sugestões. Você não tem que segui-los. Basta saber as conseqüências que você pode quebrar o layout de rotação ou a semântica da API ECSlidingViewController.

No comments:

Post a Comment