Tuesday, 9 May 2017

Edgesforextendedlayout Barra De Navegação Em Css


Corrigindo o Problema de sobreposição da barra de navegação do iOS 7 Ocorreu um problema que está envolvendo desenvolvedores de iOS, uma vez que as barras de navegação bastante transparentes surgiram no iOS 7, algo que quando pergunto às pessoas por que isso acontece, eles não tem absolutamente nenhuma idéia. Existe uma solução simples que todos usaram, mas é um hack e muitos desenvolvedores acabaram de usá-lo sem entender o problema. Coloque isso no seu controlador e de repente ele só funciona. Meio que Agora, a barra de navegação não tem como ser transparente, o que derrota a finalidade. As visualizações que devem estar por trás disso, a nossa visão de raiz e a cor de fundo da tela, não estão sendo exibidas. Honestamente, você pode não se importar, isso pode ser suficiente para você, mas é importante que você ainda entenda o problema, então leia. Se você já fez o desenvolvimento da web, isso é sorbo como transbordamento: oculto no CSS. Faz o trabalho, mas ainda é um tipo de quothackquot. Então, o problema é que quando o quadro do you39re view39 está configurado, ao contrário do iOS 6, o quadro ainda abrange a área embaixo da barra de navegação. O que você talvez não tenha percebido, é se um UIScrollView. Ou uma subclasse como UITableView. É a visão de raiz do seu controlador, ele terá a propriedade contentInset da sua propriedade definida corretamente, permitindo que a moldura esteja embaixo da barra de navegação, mas a origem real da qual ela começa a desenhar é na parte inferior da barra de navegação. Isso significa que podemos simplesmente resolver o problema da sobreposição da barra de navegação, fazendo com que nossa visão de raiz seja UIScrollView (ou subclasse de) em vez disso, enquanto ainda deixa nossa cor de fundo brilhar. Você pode fazer sua visão de raiz UIScrollView definindo o método loadView, onde sua visão de raiz e suas submissões devem estar sendo criadas se você estiver criando suas visualizações de forma programática. Se você tentar isso, você vai conseguir isso. Observe o vermelho brilhando através da barra de navegação Observe que nós estabelecemos a origem do azul da sua visão para ser o canto superior esquerdo. Tudo está sentado bem e trabalhando como a Apple esperava que usássemos as barras de navegação transparentes. Isso tem o bônus adicional de nos dar uma maneira mais fácil de expandir nosso layout além da tela também agora que estamos usando uma exibição de rolagem, mas você pode não precisar disso de qualquer maneira, em vez disso você pode usá-lo apenas como um substituto para UIView que pode ter it39s Conjunto contentInset. Não procurei as diferenças de memória para isso, mas minha expectativa é que seja extremamente mínimo. Se você quiser saber mais sobre o RubyMotion, confira os meus screencasts em motioninmotion. tv ou no meu próximo livro RubyMotion for Rails Developers. Que está disponível para pré-encomenda agora, sob um modelo de pagamento Pay What You Want, com a parte 1 quase terminada e que será lançada em breve. RubyMotion Adventures - O aplicativo MotionInMotion BlogMy parece ser apresentado corretamente, mas não consigo alcançar o efeito translúcido embaçado pelo qual o iOS 7 é famoso. O meu parece opaco. Efeito desejado Estou tentando obter um efeito de borrão mais óbvio, como o aplicativo Apples Trailers: Translucência Na minha subclasse do UINavigationController, eu faço a barra de navegação translúcida: Cor de matiz Na minha subclasse de UIApplicationDelegate, eu coloco a cor da cor da barra de navegação. Descobri que o alfa da cor de matiz não faz diferença. Ou seja, usar um alfa de 0.1 não faria com que a barra se tornasse mais translúcida. No meu controlador de exibição de conteúdo, eu configurei a borda para UIRectEdgeNone para que o top não seja cortado pela barra de navegação. Se eu fosse usar o UIRectEdgeAll padrão. A barra de navegação cobriria permanentemente o topo do meu conteúdo. Mesmo que eu vivesse com essa anormalidade, UIRectEdgeAll ainda não habilita o efeito de translucidez. Editar: Experimentando com Edges Anúncio apontado por rmaddy nos comentários, o problema pode ser com as bordasForExtendedLayout. Encontrei um extenso tutorial edgeForExtendedLayout e tentei implementá-lo: não funcionou. Em primeiro lugar, não houve efeito de translucidez. Em segundo lugar, o topo do meu conteúdo foi cortado. Na página de exemplo a seguir com o código acima, o avatar foi inicialmente coberto pela barra de navegação e era muito difícil se deslocar para. Você poderia puxar para baixo para ver o topo do avatar, mas quando você solta, a página recuperaria automaticamente e o avatar ficaria novamente obscurecido. Perguntou 14 de novembro 13 às 1:19 rmaddy. A captura de tela veio no iPhone 5 com o iOS 7.0.3 com a configuração do quotreduce de animação do sistema desativada. Usando o padrão UIRectEdgeAll faz a parte superior e inferior da exibição de conteúdo preso nas barras de navegação e guia, como eu aprendi com esse tópico. Experimentei o UIRectEdgeAll padrão e não faz diferença nos efeitos especiais. Ndash Pwner 14 de novembro 13 às 1:51 O problema foi causado pela visão de pull-down-to-refresh de terceiros EGORefreshTableHeaderView. Que foi popularmente usado antes do iOS 6 ter introduzido o controle de atualização do sistema. Essa visão confunde o iOS 7, fazendo pensar que o conteúdo é mais alto do que realmente é. Para iOS 6 e 7, Ive mudou-se para o uso do UIRefreshControl. Agora, a barra de navegação não cortará meu conteúdo. Eu posso usar UIRectEdgeAll para fazer o meu conteúdo passar por baixo da barra de navegação. Finalmente, eu sinto a minha barra de navegação com um alfa inferior para obter o efeito de translucidez. Respondeu 15 de novembro às 0:16

No comments:

Post a Comment