Atualização 3:
esse aviso também pode ser acionado por rótulos que foram numberOfLines
definidos como qualquer coisa, exceto 1 se o destino de implantação estiver definido como 7.1. Isso é completamente reproduzível com o novo projeto de visualização única.
Passos para reproduzir:
- Crie um novo projeto objetivo-c de visão única
- Defina o destino de implantação como 7.1
- Abra o storyboard do projeto
- Coloque uma etiqueta no controlador de exibição fornecido
- Defina o numberOfLines para esse rótulo como 2.
- Compilar
Arquivei o seguinte radar: rdar: // problem / 18700567
Atualização 2:
Infelizmente, isso é uma coisa novamente na versão de lançamento do Xcode 6. Observe que você pode, na maioria das vezes, editar manualmente seu storyboard / xib para corrigir o problema. Por Charles A. nos comentários abaixo:
Vale ressaltar que você pode facilmente introduzir esse aviso acidentalmente, e o aviso em si não ajuda a encontrar o rótulo que é o culpado. Isso é lamentável em um storyboard complexo. Você pode abrir o storyboard como um arquivo de origem e pesquisar com o regex <label(?!.*preferredMaxLayoutWidth)
para encontrar rótulos que omitem um atributo / valor preferidoMaxLayoutWidth. Se você adicionar o preferencialMaxLayoutWidth = "0" nessas linhas, será o mesmo que marcar explícito e definir o valor 0.
Atualização 1:
Este bug foi corrigido no Xcode 6 GM.
Resposta original
Esse é um bug no Xcode6-Beta6 e no XCode6-Beta7 e pode ser ignorado com segurança por enquanto.
Um engenheiro da Apple nos fóruns de desenvolvedores da Apple teve este a dizer sobre o bug:
A largura máxima de layout preferida é uma propriedade de layout automático no UILabel que permite que ela cresça verticalmente automaticamente para se ajustar ao seu conteúdo. Versões do Xcode anteriores à 6.0 definiriam o preferívelMaxLayoutWidth para rótulos com várias linhas para o tamanho atual dos limites em tempo de design. Você precisaria atualizar manualmente o preferidoMaxLayoutWidth em tempo de execução se o layout horizontal fosse alterado.
O iOS 8 adicionou suporte para o cálculo automático do MaxLayoutWidth preferido em tempo de execução, o que facilita ainda mais a criação de rótulos de várias linhas. Essa configuração não é compatível com o iOS 7. Para oferecer suporte ao iOS 7 e ao iOS 8, o Xcode 6 permite escolher "Automático" ou "Explícito" para o valor preferidoMaxLayoutWidth no inspetor de tamanho. Você deve:
Escolha "Automático" se tiver como alvo o iOS 8 para obter a melhor experiência. Escolha "Explícito" se tiver como alvo <iOS 8. Em seguida, você pode inserir o valor de preferênciaMaxLayoutWidth que deseja definir. A ativação do padrão "Explícito" é o tamanho atual dos limites no momento em que você marcou a caixa.
O aviso aparecerá se (1) você estiver usando o layout automático, (2) "Automático" estiver definido para um rótulo com várias linhas [você pode verificar isso no inspetor de tamanho do rótulo] e (3) seu destino de implantação <iOS 8)
Parece que o erro é que esse aviso aparece para documentos que não são de pagamento automático. Se você estiver vendo esse aviso e não estiver usando o layout automático, poderá ignorá-lo.
Como alternativa, você pode solucionar o problema usando o inspetor de arquivos no storyboard ou no xib em questão e altere "Builds for" para "Builds for iOS 8.0 and Later"