Saturday 29 December 2018

Edgesforextendedlayout uitableviewdatasource


Eu tenho um projeto que foi construído no ano passado, e ele usa XIBs, não storyboards. Os XIBs não usam Auto Layout, mas eles usam alguns Autosizing. Tenho um problema ao executar com o iOS7, no qual todas as visualizações estão escondidas sob a barra de status. Compreendo perfeitamente que este é um novo recurso com o iOS7, no qual isso pode ser esperado. No entanto, todas as soluções para corrigi-lo para não fazer isso não estão funcionando. Eu tenho uma imagem na parte superior da exibição que sempre aparece sob a barra de status, e eu não estou usando nav-bares ou algo assim. Eu tentei atualizar os Y-deltas no XIB (eles não têm nenhum efeito sobre a exibição), eu tentei definir o edgeForExtendedLayout para UIRectEdgeNone (não faz nada), e uma infinidade de outras coisas. Toda vez, a barra de status mostra com a visão dobrada sob ele, não importa o que eu faço. Que é a menos que eu manualmente mover para baixo a vista no XIB para permitir espaço para a barra de status (mas essa solução não funciona porque ele não olha direito no iOS6, é claro). O que é estranho é que mesmo quando eu tento uma linha de código para cortar em um turno de visão, ele não funciona (como o seguinte): Não que eu iria com esse tipo de solução, mas é apenas estranho que não funcionou Somente o tempo que normalmente vejo que não funciona é se Auto Layout está no lugar, que não é neste caso). É um requisito de design que a barra de status mostra, e eu apenas perguntei por que não consigo definir a exibição para estar sob a barra de status do iOS7. Eu li cada postagem de estouro de pilha sobre o assunto, bem como a transição de maçãs / guias. Mais uma vez, para reiterar, entendo perfeitamente como deve funcionar e qual deve ser a solução esperada para isso, mas nada disso parece estar funcionando para este projeto específico. Eu sou um experiente iOS dev, mas este projeto foi construído por outra equipe, então eu não sei se theres algo escondido em algum lugar nos arquivos XIB, plist, ou código que poderia ser trumping as configurações acima. Por favor, deixe-me saber se há algo mais que pode ser analisado sobre isso, ou mais informações que posso fornecer. Obrigado antecipadamente perguntou Sep 24 13 às 19:21 Apple estão empurrando você usar autolayout para realizar isso. Você precisa definir uma restrição para o Top Layout Guide da subview superior em sua visão. Veja este documento por exemplos: Para fazer isso sem XIBs, você precisará adicionar a restrição programaticamente. As maçãs docs dão um bom exemplo disto, que eu resumi abaixo. Dando que o topLayoutGuide é uma propriedade em um controlador de vista, você apenas usá-lo em seu dicionário de ligações variáveis. Em seguida, você configurar a restrição como normal: Na minha pilha de navegação criança, eu definir edgesForSextendedLayout. 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 existe. (A barra de navegação cobre a mesa). Por que a configuração de borda childs afeta seu pai Eu só quero que ele afete o viewController atual. No meu pai, isso é como eu criei o UITableView: Poderia ser que estou definindo o quadro tableViews incorretamente Eu quero a tabela para iniciar abaixo da barra de navegação, mas terminar antes da barra de guia. Eu tentei reproduzir o problema como este: Configurar um UITableView em um UIViewController com uma única célula que empurra um novo UIViewController. Nessa visão, o viewDidLoad do controlador. Eu definir self. edgesForExtendedLayout. None. Quando eu pressionar quotbackquot para voltar para o UITableViewController. Não vejo nenhuma alteração na posição da exibição de tabela. Você está modificando o edgeForExtendedLayout no UINavigationController diretamente ndash JAL 27 de abril às 20: 15UITableView estender bordas sob a barra superior 107 Eu subclassed SlackTextViewController para criar meu próprio UITableView, mas descobriu que a exibição de tabela não foi estendida sob a barra de navegação superior. O inspetor de interface do usuário no Xcode também confirma isso. Gostaria de saber como posso fazer o UITableViews bordas estender sob a barra de navegação, para que o conteúdo sobre o tableview pode aparecer através da barra translúcida. Edit: Depois de examinar o código, descobri que o problema reside neste método Se a propriedade invertida estiver definida como YES, a propriedade edgesForwardsxtLayout é automaticamente definida como UIRectEdgeNone. Se eu remover essa linha, a exibição da tabela irá mudar para cima. Dapenggao mudou o título de UITableView estender bordas sob a barra superior para UITableView estender bordas na barra superior, deslize para apagar 22 de janeiro de 2017 dapenggao mudou o título de UITableView estender bordas na barra superior, deslize para apagar para UITableView , 2017

No comments:

Post a Comment