Estou usando as classes AutoLayout e Size, mas com o lançamento do iOS 10 e do novo Xcode 8.0, há uma nova opção Vary for Traits
. É esta a substituição da classe de tamanho para diferentes larguras e alturas dos dispositivos.
Selecionando a width
caixa de seleção, ele é exibido varying 14 compact width devices
.
Selecionando a height
caixa de seleção, ele é exibido varying 18 compact height devices
.
Selecionando ambas as caixas de seleção, ele é exibido varying 11 compact width regular height devices
.
Como fazer uso dessas opções? Podemos usar AutoLayout com classes de tamanho como Xcode7.0? Se alguém tiver conhecimento profundo, explique-o.
ios
xcode8
ios10
ios-autolayout
technerd
fonte
fonte
Respostas:
Esta é apenas uma extensão de como usar "Vary Traits" rapidamente em seu projeto para adicionar diferentes layouts para iPad e iPhones.
Leia isso para entender mais sobre as classes de tamanho.
https://developer.apple.com/reference/uikit/uitraitcollection
Se você estiver pulando o exemplo a seguir, leia o Resumo no final.
Você precisa de um botão com larguras diferentes no iPhone e no iPad. O primeiro tem uma largura de 80 e o último tem uma largura de 300.
Varie para características com múltiplas restrições conforme instalado.
PASSOS :
CONCLUSÃO:
Observe que há um total de duas restrições adicionadas e em ambas as restrições, os valores diferem de acordo com a classe de tamanho escolhida.
Varie para características com restrição única, múltiplas classes de tamanho instaladas
CONCLUSÃO:
Esta parece ser uma opção melhor do que adicionar duas restrições quando uma única restrição é apenas necessária e o valor constante é diferente.
QUANDO USAR, O QUE USAR:
Ambas as abordagens estão basicamente fazendo a mesma coisa, definindo valores para classes de tamanho.
Mas, # Method1 é usado quando você deseja adicionar uma restrição especificamente para um dispositivo ou dizer classe de tamanho. Por exemplo, no iPhone o botão deve ser dos 50 pontos principais e no iPad deve ser centralizado horizontalmente e verticalmente. Em tais situações, você precisa usar VaryForTraits, pois abre portas para adicionar restrições para uma classe de tamanho específica.
# Method2 é usado quando você deseja valores constantes diferentes para um mesmo tipo de restrição.
PS: A TODOS OS QUE NÃO PODEM OBTER O EXEMPLO DE FUNCIONAMENTO
Certifique-se de que está adicionando apenas as restrições necessárias como instaladas. A caixa de seleção em Instalado deve aparecer apenas para a restrição necessária para uma classe de tamanho. Essa é a chave!
Basta adicionar uma restrição superior e um líder para um uiButton em uma visualização. Selecione a restrição superior e desmarque a opção básica Instalado com o sinal de adição. Agora, clicando no sinal de mais, adicione variação a C R e marque essa opção. Agora, mude o dispositivo de iPhone para iPad com várias combinações de orientação. Essa restrição será aplicada apenas para a classe de tamanho C R, que é o iPhone na orientação retrato. Se a caixa de seleção do Instalado básico (aquele com o símbolo de Mais) foi marcada, isso significa que a restrição deve ser aplicada a todas as classes de tamanho.
RESUMO:
A variação de traço é uma alteração na apresentação da interface do usuário com base na configuração do dispositivo. As variações de traço da interface do usuário não se limitam apenas a restrições, mas podem ser aplicadas a muito mais. Como alterar a cor do plano de fundo e outros elementos quando o dispositivo está definido para um estilo escuro. Uma variação pode ser aplicada a um elemento da interface do usuário, como remover uma restrição, ou a uma propriedade de uma classe de visão ou restrição, como a fonte de um rótulo. Você pode variar:
Tamanho ou posição de uma vista
Instalação de uma vista
Instalação de uma restrição
Constante de restrição
Fonte
Cor da fonte, matiz ou plano de fundo
Margens de layout
Arquivo de imagem
O conjunto específico de propriedades que você pode variar depende da classe do elemento. No exemplo, demonstramos o uso de - Instalação de uma restrição & - Constante de restrição. Outros são bastante simples e podem ser facilmente inferidos.
fonte
Variar para características é a evolução da opção de classes de tamanho que estava presente na versão anterior do Xcode. Ele permite uma variação muito mais bacana e precisa com base nas características. Claro, não se limita a variações apenas para iPad / iPhone, mas você também pode especificar variações com base na orientação e no dispositivo diferente.
Outras respostas neste tópico têm algumas lacunas e imprecisões, talvez a forma mais eficiente de dar uma resposta seja dando um exemplo. Por motivos de clareza, limitaremos nosso exemplo a apenas um botão e dois layouts. No entanto, conforme explicado abaixo, você pode estender o exemplo a seguir como desejar. Nosso objetivo é ajustar a posição de um botão entre dois layouts diferentes: paisagem e retrato em todos os dispositivos.
Nota: Se a opção “variar para características” não estiver habilitada, todos os ajustes de layout e interface de interface do usuário são referentes a todas as características (ou seja, todas as classes de tamanho).
Vamos começar colocando um botão em nosso storyboard. Uma vez que “variar para características” não está habilitado, o botão estará presente em todos os layouts diferentes. Se, em vez disso, tivéssemos habilitado a variação para características, o botão seria referido apenas para a característica particular selecionada.
Agora, vamos habilitar “variar por característica” e escolher uma variação com base na altura. Você deve ver que a tela inferior ficará azul e de acordo com a seleção, você verá todos os dispositivos impactados. Por enquanto, tudo bem.
Selecione novamente o botão e adicione as restrições de anúncio usual. Em nosso exemplo, adicionaremos espaço inicial superior e esquerdo, bem como largura e altura. Depois disso, clique em “Done Varying”. Você verá que a parte inferior da tela ficará cinza novamente. O que está acontecendo é que pedimos ao Interface Builder para adicionar as restrições acima apenas para as classes (w: C h: R).
Agora selecione o modo paisagem na parte inferior da tela. Você verá que o botão está em vermelho, porque não possui as restrições que você adicionou apenas para algumas características. Selecione variar novamente para características e selecione novamente a variação de altura. Adicione as seguintes restrições:
e pressione feito variando. Agora o botão está bem identificado na tela tanto para paisagem quanto para retrato.
Construa e execute. Você verá que o botão mudará de acordo com a orientação da tela.
Você pode criar layouts mais avançados seguindo este padrão. Por exemplo, você pode selecionar no início uma variação para características e descartar objetos UIKit apenas para uma característica específica. Este objeto estará presente apenas na variante especificada e ficará esmaecido nas outras, permitindo que você crie interfaces de usuário completamente diferentes com base em características.
fonte
Não é nada além de
size classes
si mesmo, mas com uma representação diferente. atéxcode 7
usarmos classes de tamanho e considerarmosheight-width
naregular,compact and any
maneira, ovary for traits
conceito é o mesmo, mas o xcode explica especificamenteexact device
. Na versão mais antiga, sabemos quefor every iphone in portraint
tipo de informação, etc., onde podemos saber o dispositivo exato!Verifique as capturas de tela abaixo,
Você deve consultar wwdc2016 - video para obter mais informações!
Referência: This So Post
fonte