Desejo exibir uma tela de inicialização simples no meu aplicativo, criada usando o Xcode 6.0.1.
Adicionei uma tela de inicialização de duas maneiras: como um XIB (com o nome padrão, LaunchScreen.xib) e como uma imagem de inicialização definida no xcassets.
Verifiquei se meu "Launch Screen File" está definido como LaunchScreen.xib.
Simulei todos os dispositivos disponíveis (por exemplo, "iPhone5 iOS8" / "iPhone5s iOS8" / "iPhone6 iOS8". Observe que apenas o iOS 8 está disponível no simulador).
ios8
xcode6
xcasset
launchimage
Eddie Hartman
fonte
fonte
Respostas:
Portanto, isso tem sido bastante doloroso para algo que deve ser trivial. Aqui está o que eu fiz:
Use xcassets
Decidi usar .xcassets versus o .xib para o lançamento. Eu apaguei o .xib. Se você já possui images.xcassets em seu projeto, é ótimo. Caso contrário, você pode adicionar um em File> New> file:
Criar um conjunto de imagens de inicialização
Agora, crie no mínimo um conjunto de imagens de inicialização e um conjunto de ícones no arquivo .xcassets clicando com o botão direito do mouse na área do navegador.
Atualize os ícones dos aplicativos e inicie as configurações de imagens
Depois, verifiquei se os "Conjuntos de ícones e imagens de aplicativos" no meu destino são os seguintes.
Muito importante: verifique se a configuração "Iniciar arquivo de tela" está em branco.
Adicione as imagens
Por último, mas não menos importante, a terminologia usada pela Apple para a seleção do dispositivo é confusa. Inicialmente, pensei que, como estou implantando apenas para iOS8 (iPhone Portrait), posso fazer isso e colocar as imagens de lançamento do iPhone 6 e iPhone 6+:
Eu rapidamente percebi que não é assim que funciona e recebi um aviso: "É necessária uma imagem de inicialização do iPhone Retina (4 polegadas) para iOS 7.0 e posterior".
Então, eu tive que selecionar o iPhone no iOS 7.0 e posterior e adicionar uma imagem para o iPhone 5s.
Portanto, para descobrir quais caixas marcar à direita, não faça a pergunta: qual é a minha orientação mínima para iOS e dispositivo e dispositivo, mas pergunte:
Quais dispositivos podem suportar meu iOS mínimo? Agora, qual é o iOS mínimo suportado nesses dispositivos? E certifique-se de marcar todas essas caixas. Então, para mim, estou segmentando o iPhone 5s, 6 e 6 Plus em 8.0, mas, como o iPhone 5s pode existir com o 7.0, preciso marcar a caixa 7.0 também para mostrar o espaço reservado para a imagem. Em outras palavras, a caixa de seleção (iOS) à direita mostra a versão mínima do iOS disponível para esse dispositivo e você precisa clicar nela para mostrar o espaço reservado para a imagem e colocar uma imagem, independentemente de você estar implantando nesta versão do iOS ou não .
Espero que isso ajude alguém.
fonte
O
LaunchScreen.xib
valor e o infoLaunch screen interface file base name
são da minha experiência, ambos os espaços reservados criados quando o projeto é criado. Se você deseja usarImages.xcassets
exclusivamente as telas de inicialização, excluaLaunchScreen.xib
oinfo.plist
item e o item.Se você fornecer a
info.plist
configuração, seu aplicativo usará oxib
e não o seuImages.xcassets
fonte
Xcode 8:
As imagens usadas no LaunchScreen.xib não devem estar em um .xcassets, tente soltá-las no pacote.
Parece que quando o .xib é carregado, as imagens nos .xcassets ainda não estão disponíveis.
EDIT: Por algum motivo opaco após adicionar algumas localizações, a tela de inicialização parou de funcionar, agora funciona com uma imagem dos ativos, extremamente estranha.
fonte
/Library/Caches/Snapshots/<<app_bundle>>/
concluído antes do carregamento dos arquivos de suporte, incluindo fontes personalizadas e o catálogo de ativos.Minha solução foi criar todas as imagens de lançamento.
Em seguida, defino a fonte de imagens de inicialização como o recurso LaunchImage e deixo o arquivo da tela de inicialização em branco.
Finalmente, se o projeto não tiver um Launch Screen.xib, adicione esse arquivo e deixe-o como está.
fonte
Para mim, funcionou quando eu desinstalei o aplicativo e reiniciei o simulador. Quando instalado novamente, a imagem de inicialização apareceu como esperado. Isso também funcionou em um dispositivo real.
fonte
Para as pessoas que estão usando o
Asset Catalog's Launch Image
, como aprendi da maneira mais difícil, tive esse cenário em que recebi umjpg
arquivo pela primeira vez e solicitei que o convertessemPNG
.Confiei neles o suficiente para vasculhar a Internet primeiro por que a imagem de lançamento não estava aparecendo e não deu qualquer solução, então tentei colocar de volta a antiga imagem de lançamento e estava funcionando bem; foi lá que pensei have não é um
PNG
arquivo adequado .TL; DR: verifique se você está realmente usando um arquivo PNG adequado, não um arquivo com uma extensão renomeada.
fonte
A remoção de "Iniciar nome da base do arquivo da interface da tela" do arquivo Info.plist E da lixeira "Iniciar Screen.xib" funcionou para mim.
fonte
Simplesmente remover e reinstalar o aplicativo funcionou para mim:
Testando no Simulador
Teste no dispositivo
fonte
O problema com a resposta aceita é que, se você não definir o arquivo de tela de inicialização, seu aplicativo estará no modo de aumento de escala em dispositivos como o iPhone 6 e 6+ => renderização embaçada.
Abaixo está o que eu fiz para ter uma solução completa de trabalho (estou direcionando o iOS 7.1 e usando o Xcode 8) em todos os dispositivos (realmente, eu estava ficando louco por esse problema de aumento de escala)
1. Prepare seus .xcassets
Para simplificar, estou usando um arquivo .PDF de vetor. É muito conveniente e evite criar várias imagens para cada resolução (1x, 2x, 3x ...). Suponho também que você já criou seus xcassets.
2. Crie seu arquivo Launch Screen
3. Adicione sua imagem ao seu arquivo Launch Screen
4. Adicione o arquivo Launch Screen ao seu destino
Por fim, em suas propriedades Target General, consulte o arquivo Launch Screen.
Inicie seu aplicativo e sua tela inicial deve ser exibida. Tente também no iPhone6 e iPhone6 +, e seu aplicativo deve ser exibido corretamente sem nenhum aumento de escala (o arquivo Launch Screen visa fazer isso).
fonte
Depois de várias horas frustradas, decidi usar dessa maneira. Funciona para iPhone e iPad (no Xcode 6.1)
1 imagem vale mais que mil palavras. Por favor, veja abaixo:
fonte
Eu li sobre um bug no Xcode 6 que impede que aplicativos em modo paisagem exibam uma imagem de inicialização.
Tente definir imagens e orientação em Images.xcassets:
fonte
Há um erro no qual as imagens de inicialização do Xcode 6 armazenadas nos arquivos de ativos fazem com que apenas os aplicativos iPhone paisagem no iOS7 / iOS8 exibam uma imagem de inicialização preta. iPad funciona bem.
http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=10868
Solução: use o novo Launchscreen.xib para ios8 + em diante. (é muito melhor)
Para que os dispositivos ios7 funcionem, basta desativar a fonte de imagens de inicialização e usar os nomes dos arquivos de imagens de inicialização da velha escola na lista.
Doloroso, mas funciona. B
fonte
Eu tentei de tudo, mas a solução era extremamente simples. Basta usar o arquivo .jpg em vez de .png no LaunchScreen.storyboard. Parece que o iOS não processa o arquivo .png ou o tamanho da imagem relativamente grande na tela de inicialização.
fonte
Faça o que o Spectravideo328 respondeu e:
Tente desmarcar a caixa iOS 7 e posterior e VERIFIQUE a caixa iOS 6 e anterior no catálogo de ativos. Parece haver um bug na imagem de lançamento do iOS 7. (Ambos têm as mesmas imagens de inicialização, exceto a de 320 x 480)
Espero que isso ajude, ajudou para mim!
fonte
Configurei "LaunchImage" no meu catálogo de ativos e simplesmente limpei o campo "Launch Screen" e pronto! Eu tinha as imagens de lançamento aparecer ...
fonte
Uma maneira é adicionar também "Launch Screen" (
LaunchScreen.xib
), colar a imagemUIImageView
e, em seguida, defina-a como " Horizontal Horizontal in Container " e " Vertical Center in Container " em "Align" se você estiver usando o Auto Layout.Tela: http://i.stack.imgur.com/CfnHT.png
Não se esqueça de colocar
LaunchScreen.xib
em "Iniciar arquivo de tela".fonte
Eu tive o mesmo problema depois que comecei a usar o Xcode 6.1 e alterei minhas imagens do iniciador. Eu tinha todas as imagens em um catálogo de ativos. Eu obteria apenas uma tela preta em vez da imagem estática esperada. Depois de tentar tantas coisas, percebi que o problema era que o Catálogo de ativos tinha o 'Membro de destino' do projeto marcado na visualização FileInspector. Marcar a opção ON fez a mágica e a imagem começou a aparecer no lançamento do aplicativo.
fonte
Minha sugestão para você é selecionar Iniciar fonte de imagem como Image.Assets. Crie ativos de imagem inicial na pasta Image.assests.
Imagem de referência para a configuração correta:
fonte
Tentei abrir um novo projeto e seguir as mesmas etapas que você fez para definir uma tela de inicialização.
Por padrão, o .xib foi definido como "Iniciar arquivo de tela" e a tela branca com um rótulo apareceu por meio segundo no simulador.
Depois, inicio um "Launch Images Source" e defino-o como Images.xcassets, que é gerado com as imagens de plano de fundo que adicionei ao projeto. (tudo de bom até agora)
Execute novamente o simulador e as imagens de inicialização não serão exibidas ...
Após excluir o "Arquivo de tela de inicialização" especificado e uma limpeza: Produto -> Limpeza, no menu superior, as imagens de inicialização finalmente são exibidas.
Talvez isso ajude?
fonte
Existe um arquivo 'LaunchScreen.xib' adicionado automaticamente ao seu projeto. Excluir isso mudará o xCode para o uso das imagens padrão em Images.xcassets
editado para adicionar, vá para Ícones de aplicativos e Imagens de inicialização O arquivo de tela de inicialização deve estar em branco / vazio
fonte
Eu tive um bug muito estranho. Aparentemente, minha fonte de imagem de inicialização foi definida apenas para configuração de depuração e não para liberação. Isso resultou na exibição da minha tela de inicialização ao executar a configuração de depuração, mas quando mudei para o release, obtive uma tela preta.
Corrigi isso quando alterei minha configuração de compilação para liberar o botão Iniciar origem da imagem que apareceu e tive que escolher Usar catálogo de ativos novamente.
Para quem está curioso, é assim que meu projeto.pbxproj se parece.
fonte
Por algum motivo, tive que alterar o local do catálogo de ativos para "relativo ao projeto" para que isso funcionasse.
Eu também havia excluído o aplicativo do meu telefone e reinstalado, mas provavelmente foi o "parente do projeto" que o fez.
fonte
* (Xcode 7.2 / Destino de implantação 7.0 / Somente orientação paisagem) *
Eu sei que é uma pergunta antiga, mas com o Xcode 7.2 eu ainda estou recebendo a mensagem e resolvi isso:
1) Selecione RETRATO e ambas as paisagens. Adicione "Iniciar fonte de imagens" e "Iniciar arquivo de tela"
2) Na sua imagem de inicialização, selecione o iPhone "8.0 and Later" e "7.0 and Later".
3) Adicione este código no seu aplicativo
4) Adicione isso ao seu ViewController
Espero ajudar alguém.
fonte
Isso é trabalhado para mim. Clique em LaunchScreen.storyboard e, no painel direito, você pode selecionar a caixa de seleção "Is Initial View Controller".
LaunchScreen.storyboard -> É o controlador de exibição inicial
fonte
Eu acabei de descobrir isso. Minha imagem de inicialização não estava aparecendo, eu recebo uma tela branca ao iniciar em um dispositivo (iPhone 6, 7+) ou testFlight. Correção: renomeou "Landing_screen.png" para apenas "Landing_screen" removendo a parte .png. O ícone da imagem no Xcode mudou para o ícone branco e no storyboard da tela de lançamento, a imagem aparece como um ponto de interrogação agora. A imagem Iniciar agora aparece e não a tela branca. Minha instalação: estou usando o Swift 3.1 com o Xcode 8.3.1. No LaunchScreen.storyboard, adicionei uma visualização de imagem simples e estiquei a imagem para caber no controlador de visualização. Defino as restrições de layout automático Espaço superior / inferior / à esquerda / à direita como superview para 0.
fonte
Se você alterou sua imagem de inicialização de uma imagem anterior, e observe o seguinte:
Provavelmente, devido ao cache da imagem de inicialização feita pelo iOS. Reiniciar o dispositivo deve resolver o problema.
fonte
Eu encontrei esse bug também no meu aplicativo somente paisagem. A seguinte solução de carlodurso funciona:
fonte
Para mim, funciona quando removo
LaunchScreen.xib
e altero para um arquivo de storyboardLaunchScreen.storyboard
.fonte