Wednesday 18 October 2017

Edgesforextendedlayout error 500


Na minha pilha pilhas de navegação, eu seto edgesForOxtendedLayout. None Quando eu clico no botão de volta, o UITableView no meu pai é movido para cima, como se a barra de navegação não existir. (A barra de navegação cobre a tabela). Por que a configuração da borda do filho afeta seu pai, eu só quero que ele afete o viewController atual. No meu pai, é assim que eu criei o UITableView: Pode ser que eu esteja configurando o quadro tableViews incorretamente. Eu quero que a tabela comece abaixo da barra de navegação, mas termine antes da barra de guia. Eu tentei reproduzir o seu problema como este: Configurar um UITableView em um UIViewController com uma única célula que empurra um novo UIViewController. Nessa visão viewServerDidLoad da view view. Eu configurei self. edgesForExtendedLayout. None. Quando eu pressionar quotbackquot para voltar ao UITableViewController. Não vejo nenhuma alteração na posição da vista da tabela. Você está modificando as bordasForExtendedLayout no UINavigationController diretamente ndash JAL 27 de abril 16 às 20: 15 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