Friday, 3 November 2017

Edgesforextendedlayout scrollview não revela toda a página


Eu tenho trabalhado nisso durante as últimas horas e não consigo entender isso. Eu tenho um scrollview com conteúdo adicionado a ele como uma subvisão, mas minha exibição de rolagem não vai percorrer o tabBarController, mesmo que o conteúdo vá além desse ponto. Achei que isso funcionaria, mas definitivamente não. Eu estava procurando por uma resposta e não consegui encontrar uma, a ajuda é muito apreciada perguntou 14 de fevereiro 15 às 15:46 resposta JonLOos cobre a questão original. Para abordar sua nova pergunta: Como faço para obter a exibição de rolagem para ajustar automaticamente a quantidade de rolagem necessária com base na quantidade de conteúdo que existe. Leia as Notas técnicas da Apple TN2154: UIScrollView e Autolayout. Particularmente a seção de Auto Layout Auto. Essencialmente, as restrições nas visualizações de conteúdo devem especificar completamente um tamanho, que a visualização de rolagem usa como tamanho de conteúdo. 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 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. Claro, isso significa que o UITableViewController funciona por padrão (uma vez que o UITableView é a primeira visualização).

No comments:

Post a Comment