Saturday 25 November 2017

Edgesforextendedlayout navigation bar color x


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. Então você configurou sua restrição como normal: NavigationRender Issue I arquivou outro relatório de bug (bugzilla. xamarin / showbug. cgiid24500) para o problema original. Este erro pode fazer o que você está tentando fazer difícil, mas depende do que exatamente você precisa. Se você quiser que a cor esteja correta, então você pode definir a cor de fundo do NavigationPage para ser o mesmo que as páginas que você está empurrando para ele. O conteúdo das páginas ainda será iniciado abaixo da barra de navegação, mas como a cor de fundo da página corresponde à cor de fundo da página de navegação propriamente dita, ela ficará correta. Veja a captura de tela anexada. A parte mais difícil é se você deseja que o conteúdo rolar (verticalmente) e mover-se debaixo da barra de navegação como rola (FWIW, se é isso que você está tentando fazer, da próxima vez que você deve realmente mencionado que desde o início). Nesse caso, você precisa da exibição de rolagem para preencher a tela e ter seu ContentInset. Top definido para a altura da barra de navegação mais a altura da barra de status. Isso geralmente pode ser feito automaticamente definindo AutomaticallyAdjustsScrollViewInsets como true no controlador de exibição. No entanto, isso não funcionaria com o estado atual de Xamarin. Forms por causa do bug que eu liguei acima. O NavigationRenderer está a tornar a sua vista demasiado curta para que ele não pode preencher a tela. Ive pensou sobre isso um pouco, mas até agora eu não posso vir acima com uma maneira de contornar esse bug. IOS Simulator Screen Shot 13 de novembro de 2017, 1.12.45 PM. png Quaisquer atualizações sobre esta questão Estou tendo exatamente o mesmo problema - basicamente definir a visão de navegação translúcido doesnt trabalho ou bagunçar as coisas. Eu acho que o bug se perdeu porque foi deixado no estado NEEDINFO. Eu empurrei de volta para o estado CONFIRMADO. Estou enfrentando o mesmo problema, qualquer pessoa que resolveu o problema ainda usando custom renderer alterar a propriedade de área de conter Trabalhou. Obrigado tanto Dheeraj Singh Este é apenas ouro com o prazo entrante Eu quero comprar-lhe uma cerveja Eu quero comprar-lhe uma cerveja Eu gostei da versão original (typo) deste (capturado em notificações do email): Eu quero comprá-lo A be ar eu não consigo entender o que mudou, mas no mais recente Xamarin. Forms 2.3.1.114, não consigo recuperar a propriedade ContainerArea mais (seu sempre nulo). Qualquer pensamento sobre este Mesmo para mim. Propriedade é sempre nulo. Ainda tem um espaço em branco na parte inferior da página. Tente com o código abaixo. Classe pública NavigationPageRenderer. NavigationRenderer Obrigado DheerajSingh, ele funciona perfeitamente com seu último snippet de codeiOS 6 038 7 Dicas de compatibilidade Em apenas alguns meses, o iOS 7 encontrou seu caminho para mais de 80 de todos os dispositivos iOS. O Xamarin anunciou o suporte para o mesmo dia quando o iOS 7 foi lançado e é fácil atualizar seu aplicativo ao desenvolver com o Xamarin. iOS. A Apple recomenda primeiro redesenhar seu aplicativo para iOS 7 e, em seguida, se você tiver mudanças estruturais ou de navegação para trazê-los para a versão iOS 6 onde eles são apropriados. A Apple não recomenda o redimensionamento da versão iOS 6 do aplicativo com elementos de design do iOS 7, como botões de barras sem bordas. Aqui estão algumas dicas rápidas de interface do usuário para ajudá-lo com sua transição e compatibilidade. Números de Versão: Determinar a versão do iOS é importante quando você está acessando novas APIs. Se você tentar chamar uma API do iOS 7 em um dispositivo executando uma versão mais antiga, isso pode causar o seu aplicativo travar se não for tratado corretamente. Portanto, é importante verificar sempre o número de versão correto usando esse método auxiliar simples: UIDevice. CurrentDevice. CheckSystemVersion (7. 0) Para tornar mais fácil você pode fazer isso um método estático em uma classe de utilitário. Eu chamei o meu Util. cs e adicionei o seguinte método para verificar se o dispositivo atual é iOS 7 ou mais recente. Ver Alterações no Controlador: As visualizações no iOS 7 utilizam layouts em tela cheia, se você estiver especificando WantsFullScreenLayout true. O controlador de visualização pode exibir seu conteúdo em um local de tela inesperado quando ele é executado no iOS 7. No entanto, você pode ajustar como um controlador de exibição exibe suas visualizações. Todos os UIViewController8217s fornecem estas propriedades: EdgesForExtendedLayout: Se você criou o UIViewControllers personalizado este será seu novo melhor amigo. Desde o iOS 7 UIViewControls agora ir sob o NavigationBar. É comum que sua interface de usuário possa estar escondida sob ele. Definir essa propriedade como UIRectEdge. None forçará o iOS 7 a não colocar seu conteúdo sob o NavigationBar. ExtendedLayoutIncludesOpaqueBars: Se você estiver usando barras opacas você deve definir não só EdgesForExtendedLayout, mas você também deve definir ExtendedLayoutIncludesOpaqueBars como true, como o valor padrão é false. AutomaticallyAdjustsScrollViewInsets: ScrollViews agora automaticamente ajustar suas inserções no iOS 7. Se você não deseja isso, você vai querer definir esta propriedade para false. Para todos estes você deve assegurar-se de que você esteja envolvendo as propriedades em uma verificação da versão: Controles: Houve diversas mudanças à aparência dos controles no iOS 7. Aqui estão algumas pontas rápidas: UIButtons: Em iOS 7 um UIButton Não mais incluir uma moldura ou aparência de fundo. UIButtonType. RoundedRect agora é definido como UIButtonType. System. No entanto, se você ainda precisa seguir as versões anteriores, continue usando RoundRect e o iOS 7 ainda irá aplicar a aparência do botão System. Se sua interface de usuário requer um plano de fundo, você pode abordá-lo de duas maneiras. 1.) Especifique uma cor de fundo: button. Background UIColor. DarkGray 2.) Use um botão do tipo UIButtonType. Custom e fornecer uma imagem de fundo personalizada. UIBarButtons: No iOS 7, a arte de botão de barra personalizada não é mais tratada como uma imagem de modelo, que é usada como máscara para criar a imagem final. Isso significa que o tom da barra de Janela ou Navegação será aplicado. Para especificar se a arte personalizada deve ser tratada como uma imagem de modelo ou totalmente renderizada, use as seguintes propriedades: Continue lendo Como começar com a estrutura de notificação do iOS 10 Diga Olá a Siri com SiriKit Crie um jogo com iOS 10 e extensões de aplicativo de mensagem

No comments:

Post a Comment