Criei um novo projeto a partir do zero no Swift no Xcode 6 (Beta 1) e vi um comportamento estranho no Storyboards e na saída que estou visualizando.
Eu construí uma interface simples (como mostrado abaixo) - com as propriedades do View Controller incluídas. Quando eu executo isso no simulador, espero que 'Hello, World' seja central na interface do usuário - no entanto, parece que esse 'Square' está simplesmente sendo encaixado na tela do iPhone e, portanto, a exibição errada está sendo exibida (veja abaixo )
Minha pergunta é: alguém mais viu esse comportamento e como eles o corrigiram?
Obrigado!
ios
iphone
interface-builder
xcode6
Algodão doce
fonte
fonte
Respostas:
Embora a resposta de Asif Bilal seja uma solução mais simples que não envolva Classes de tamanho (que foram introduzidas no iOS 8.), é altamente recomendável que você se acostume com as classes de tamanho como elas são no futuro e, eventualmente, você poderá ponto."
Você provavelmente não adicionou as restrições de layout.
Selecione seu rótulo, toque no botão de restrições de layout na parte inferior:
Nesse menu, adicione largura e altura (NÃO deve ser a mesma que a minha) marcando a caixa de seleção e clique em adicionar restrições. Em seguida, arraste a etiqueta com o controle para a tela principal e, quando você clicar novamente, deverá ter as opções para centralizar horizontal e verticalmente no contêiner. Adicione ambos e você deverá estar configurado.
fonte
Execute as etapas a seguir para resolver o problema
No Storyboard, selecione qualquer vista e vá para o Inspetor de arquivos. Desmarque a opção "Usar classes de tamanho", solicitando que você mantenha os dados da classe de tamanho para: iPhone / iPad. E, em seguida, clique no botão "Desativar classes de tamanho". Isso aumentará o tamanho da visualização do storyboard com o dispositivo selecionado.
fonte
Se você estiver usando o Xcode 6 e criando o iOS 8, nenhuma dessas soluções está correta. Para que as visualizações apenas do iPhone sejam dimensionadas corretamente, não desative as classes de tamanho, desative métricas inferidas e não defina restrições (ainda). Em vez disso, use o controle de classe de tamanho, que é um botão de texto fácil de perder na parte inferior do Interface Builder que inicialmente lê "wAny hAny".
Clique no botão e escolha Largura compacta, Altura regular. Isso redimensiona suas visualizações e cobre todas as orientações de retrato do iPhone. Os documentos da Apple aqui: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/SelectingASizeClass.html ou procure em "Selecionando uma classe de tamanho no Interface Builder"
fonte
No Storyboard, selecione seu ViewController e vá para o Atribute Inspector. No topo, em Métricas simuladas, você tem as propriedades Tamanho e Orientação definidas como Inferidas. Altere-os para os valores desejados.
Para que um aplicativo seja exibido corretamente em outro tamanho de tela, você também precisa configurar restrições, conforme descrito por Can Poyrazoğlu na primeira postagem.
fonte
Eu tive esse problema no xcode 6 e existe uma maneira de resolver os conflitos de redimensionamento. Se você selecionar sua visualização, na parte inferior, verá um ícone que se parece com | -Δ- |. Se você clicar nele, seu projeto será redimensionado para diferentes dispositivos.
fonte
Vá para o Inspetor de atributos (canto superior direito) Nas Métricas simuladas, que possuem as propriedades Tamanho, Orientação, Barra de status, Barra superior, Barra inferior. Para SIZE, altere Inferred -> Freeform.
fonte
Na página do seu storyboard, vá para o File Inspector e desmarque 'Usar classes de tamanho'. Isso deve reduzir o seu controlador de exibição para o tamanho normal do IPhone com o qual você estava familiarizado. Observe que o uso de 'classes de tamanho' permitirá que você projete seu projeto em vários dispositivos. Depois de desmarcar, o Xcode exibirá um diálogo de aviso da seguinte forma. Isso deve ser auto-explicativo.
"A desativação das classes de tamanho limitará este documento ao armazenamento de dados para uma única família de dispositivos. Os dados da classe de tamanho que melhor representam o dispositivo de destino serão mantidos e todos os outros dados serão removidos. Além disso, as sequências serão convertidas em suas equivalentes adaptativos ".
fonte
Para quem usa o XCode 7, é muito fácil criar um tamanho de dispositivo específico (em vez da tela quadrada padrão).
No Interface Builder, selecione seu ViewController ou Scene no menu esquerdo. Em baixo
Show the Attributes Inspector
, vá paraSimulated Metrics
e escolha o desejadoSize
no menu suspenso.fonte
Você provavelmente deve usar "Resolver problemas de layout automático" (ícone do triângulo inferior direito na exibição de storyboard) para adicionar / redefinir as restrições sugeridas (Xcode 6.0.1).
fonte