Friday, 26 May 2017

Edgesforextendedlayout Uiviewcontroller Lifecycle


Eu li nos fóruns sobre esta propriedade, principalmente suas pessoas definindo esta propriedade para falso ou desmarcando-a no storyboard. Eu fiz isso sozinho porque quando eu tenho um controlador UINavigation incorporado em uma Vista, a barra superior empurra meu UITextView para baixo para que o texto comece a editar na parte inferior. Desmarcando bordas ampliadas sob barras superiores no StoryBoard no UIViewController resolve o meu problema, mas não entendo o que está acontecendo. Alguém pode dar uma explicação sobre o propósito dessa propriedade, eu gostaria de saber mais sobre isso. Perguntou 12 de novembro às 19:08 Por padrão, as visualizações UITableViewControllers são inseridas automaticamente no iOS7 para que elas não começem abaixo da barra de barstatus de navegação. Isso é controlador pela configuração Ajustar inserções de exibição de rolagem na guia Inspetor de Atributos do UITableViewController no Builder de Interface, ou pelo método setAutomaticallyAdjustsScrollViewInsets: de UIViewController. Para um conteúdo do UIViewControllers, se você não quiser que os conteúdos das vistas se estendam sob as barras topbottom, você pode usar as configurações Extend Edges Under TopSubder Bottom Bars em Interface Builder. Isso é acessível através da propriedade edgeForExtendedLayout. 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