Iniciar storyboard na tela não exibindo imagem

162

Estou tentando fazer com que uma imagem seja exibida como a tela de inicialização do meu arquivo Launch Screen.storyboard, no entanto, a imagem nunca é exibida. Tenho etiquetas que aparecem bem, mas a imagem não aparece.

É assim que a tela de inicialização fica no arquivo Launch Screen.storyboard: insira a descrição da imagem aqui

No entanto, quando eu executo o aplicativo no simulador (assim como no dispositivo físico), é isso que aparece:

insira a descrição da imagem aqui

Como você pode ver, o rótulo "Teste" aparece bem, mas a imagem não é exibida. Realmente não sei por que isso está acontecendo e nada que eu tente parece funcionar. Se alguém tiver alguma idéia de como corrigir isso, seria muito apreciado.

shadowarcher
fonte
1
verifique se a imagem está no formato png adequado . não jpg se for.
Utkarsh Singh
3
O fato de várias respostas completamente diferentes terem muitos votos positivos é muito, muito triste.
22418 Daniel Springer
1
É possível que, se a imagem for muito grande e seu tempo de carregamento demorar demais, ela seja descartada da tela de inicialização?
Lubbo 3/09
@Lubbo Acho que há algo nessa teoria. Eu tenho uma visão de lançamento que tem uma imagem grande e pequena, a pequena carrega bem e a grande não. A imagem pequena está em xcassets e a grande, que tentei dentro e fora do arquivo de ativos.
Tom Bates

Respostas:

327

Após reiniciar o Xcode, limpe a compilação e várias outras sugestões no SO sobre esse problema. O que realmente consertou para mim foi uma reinicialização completa do dispositivo. (Eu perdi mais de uma hora nisso)

Suponho que isso apenas mostre que o velho ditado: você desligou e ligou novamente ainda é verdadeiro para os gadgets mais recentes!

Como reiniciar o iPhone XS ou iPhone XS Max

  1. Pressione e solte rapidamente o botão Aumentar volume
  2. Pressione e solte rapidamente o botão Diminuir volume
  3. Pressione e segure o botão lateral até que o logotipo da Apple apareça
Flexicoder
fonte
30
Esse cara está correto. Apenas fazer uma reinicialização do dispositivo corrigiu para mim!
Lance Samaria
4
Teve o problema de uma imagem não ser atualizada após substituí-la nos ativos. Obrigado pela dica, sair completamente do simulador e reiniciá-lo atualizou a visualização. Muito estranho que nada mais parecesse fazer o truque.
Kilian em Kilian
3
Obrigado. Também funciona para o simulador. Após reiniciar o simulador, a imagem no Launch Scree.storyboard finalmente aparece. É definitivamente um bug do iOS.
Vince Yuan
4
Mesmo problema aqui. Mesmo que eu tenha mudado a imagem na tela de lançamento no simulador, a imagem antiga ainda estava em cache no meu telefone. Tentei compilar, alterar o nome do arquivo, alterar a imagem, não funcionou. Eu tive que desligar e ligar o telefone. Isso consertou.
Paul
3
Isso é 2020 e isso ainda salvou meu dia! Obrigado!
Bezaleel 31/01
91

Eu estava brincando com isso por horas também. Mas eu encontrei a solução agora. Você precisa adicionar a imagem ao seu projeto e também aos assets.xcassets via arrastar e soltar.

Tristan G
fonte
8
Era isso. A imagem tinha que estar no projeto e nos ativos. É como um jogo de pancada na cara. Qual dica vai corrigi-lo? ninguém sabe.
FranticRock 2/10
quem soube que você tem que adicionar uma imagem no projeto também
Abdul Waheed
2
Adicionando imagem apenas para o projeto fixa o meu problema :)
Sneha
3
Obrigado, isso resolveu para mim. Para adicionar isso, eu havia nomeado anteriormente as imagens com o tamanho (launch280.png, launch560.png, launch840.png) e também adicionei um ativo ao Assets.xcassets com o nome do ativo launch. Mas ainda não funcionou. Eu tive que renomear os arquivos de imagem para launch.png, [email protected] e [email protected], adicioná-los ao projeto, adicioná-los como um ativo chamado launche, em seguida, funcionou. Graças a Apple para fazer a mais simples das coisas desnecessariamente complexos ¬_¬
mashers
2
Aaaand Estou aqui pela segunda vez, três anos depois ... É abril de 2020, o XCode ainda tem esse bug ... Bom ...
FranticRock
42

Tinha o mesmo problema, adicionar a imagem às "Fases de construção -> Copiar recursos do pacote" corrigiu-a.

Jakab Robert
fonte
6
Era disso que eu precisava. A imagem deve estar no pacote principal e não no arquivo de ativos.
Meonardo 26/10
Foi isso que fez por mim.
29418 Chris
Corrigido para mim, obrigado!
adam eliezerov
28

Siga as etapas abaixo,

  1. Remova o aplicativo do dispositivo
  2. Dispositivo de reinício
  3. Construa novamente

Se não estiver funcionando, exclua os dados derivados. Preferência Xcode-> Localtab-> Dados derivados. Em seguida, siga as etapas acima.

Vineesh TP
fonte
25

Isso aconteceu comigo e me deixa louco, além de me fazer perder alguns minutos até que eu descubra.

Então, como foi dito antes:

  1. Importe a imagem desejada para o seu projeto do Xcode (basta arrastar e soltar)
  2. Alterar suas restrições e alinhamento
  3. Atualizar quadros que resolvem problemas de layout automático
  4. No menu da guia Inspetor de atributos (geralmente no menu xCode do canto direito), em Exibição de imagem> Imagem, remova a extensão da imagem (.png ou .jpg) - esse é o truque

Na tela de design, ele não aparecerá, mas quando você executar o aplicativo, ele será mostrado.

Espero que possa ajudar!

Jhonsore
fonte
1
trabalhou para mim! antes de tentar sua solução, a única maneira de mostrar era reiniciar meu telefone! Obrigado
Filipe Sá
1
Obrigado! Não tenho idéia de como você o encontrou, mas funciona!
Stas Volskiy
Sim, de fato!! O truque é remover a extensão da imagem dos arquivos de imagem .png! Os arquivos .jpg não funcionaram, então tive que convertê-los para .png primeiro! Muito obrigado Jhnosore!
ActiveA
24

Muito frustrante. Solução que finalmente funcionou:

  1. Faça reinicialização do dispositivo

  2. Excluir aplicativo

  3. Instale o aplicativo do Xcode

Crashalot
fonte
17

Por fim, reinicie o telefone funciona para mim!

Passei horas nesta questão. Tentou alterar o nome das imagens, excluir todos os recursos da imagem, modificar info.plist, reiniciar o Xcode e até tentou definir todos os atributos das imagens (o que você pode ver como eu estava desesperada).

brilhar
fonte
Isso não fornece uma resposta para a pergunta. Depois de ter reputação suficiente, você poderá comentar qualquer postagem ; em vez disso, forneça respostas que não exijam esclarecimentos do solicitante . - Do comentário
Adam Richardson
Sinto muito @AdamRichardson, ele fornece uma resposta e uma correta também, e esse foi o meu caso. Eu só precisava reiniciar o telefone / simulador.
Kegham K.
Passei 16 horas tentando resolver isso e, finalmente, reiniciar o telefone fez o truque.
precisa
2
Aposto que alguém na Apple que poderia consertar isso deve estar pensando: "Ah, eles só precisam reiniciar seus telefones - não é como se isso afetasse as versões do Release ou algo assim. Podemos deixar essa tarefa para mais tarde".
dinesharjani
Por fim, acabou sendo reiniciado o telefone que corrigiu o problema #
Taylor Maxwell
12

Esse problema está relacionado ao Assets.xcassets para corrigi-lo. Você deve adicionar a imagem como recurso, mas não na pasta xcassets, e deve funcionar perfeitamente

Reinier Melian
fonte
2
Esta é a única solução trabalhada até agora. Reiniciar o xcode, limpar dados derivados, alterar o nome da imagem não funcionou. Eu não recomendo dispositivo de reinício como uma solução para qualquer um
NightFury
esse bug é tão antigo quanto a criação do xcassets. Eu o preenchi mentalmente na minha pasta "coisas que a maçã nunca resolverá".
Duck
8

No meu caso, redefinir o conteúdo e as configurações do simulador corrigiu o problema.

Tarek
fonte
7

Eu enfrentei o mesmo problema.

  1. Adicione um novo conjunto de imagens ao XcodeAssets.
  2. Adicione imagens ao conjunto de imagens.
  3. Adicione visualização de imagem à tela inicial e defina seu conjunto de imagens como imagem
  4. No inspetor de atributos do Imageview, desmarque 'limpa o contexto gráfico'
  5. Limpe a pasta de compilação e execute novamente.

insira a descrição da imagem aqui

AG
fonte
5

Parece que há algum problema com o cache de recursos no xCode. Teve o mesmo problema, reiniciou o xCode e tudo funcionou bem depois disso.

Entro
fonte
5

Reinicie seu dispositivo e limpe os dados derivados do código x

Maulik Patel
fonte
3

Depois de tentar tudo em vários threads do StackOverflow, aqui está o que funcionou para mim:

  • Use um .png
  • Não o inclua no seu catálogo de ativos. Adicione-o diretamente à hierarquia do seu projeto, como você adicionaria qualquer arquivo de origem.
  • Na visualização da imagem, carregue a imagem, incluindo sua extensão. Exemplo: launch_app_image.png

(Talvez seja necessário limpar o produto ou dados derivados para atualizar, mas eu não precisei)

Kqtr
fonte
2020 e isso ainda é relevante, às vezes, alterar a imagem para um novo PNG dentro do catálogo quando funciona o interrompe. Não tenho certeza se é uma coisa de nível de compactação, mas os arquivos de imagem simples funcionam.
Mitchell Currie
3

Eu tive esse problema depois de adicionar uma imagem ao projeto e derrubar o dispositivo que o problema resolveu

maral
fonte
3

Estava mudando a imagem de plano de fundo da tela inicial e a nova imagem não estava aparecendo (reagir ao projeto nativo).

Seguindo as respostas dos outros.

Eu fiz todo o abaixo e foi corrigido:

  • Construção limpa.
  • Remover aplicativo do simulador
  • Sair do simulador
  • Reinicie o XCode
  • Executar aplicativo novamente
em repouso
fonte
3

Bem, a partir de agora existe um dispositivo de retina disponível e eu ignorei a @1ximagem noAssets.xcassets .

No meu caso, tenho o logotipo do aplicativo na tela inicial, que não é visível quando executo o aplicativo.

Depois de perder tanto tempo eu descobri que eu só forneceu @2xe @3ximagens para que a imagem do logotipo.

Este problema foi resolvido adicionando a @1xversão dessa imagem.

Kampai
fonte
1
você salvou meu dia!
kambala 10/06
2

Você deve certificar-se de que o nome do arquivo da sua imagem tenha um formato como .png ou .jpg no final, caso contrário não funcionará. Além disso, antes de adicionar sua imagem, você deve verificar se o arquivo de imagem está na pasta "Assets.xcassets" do seu projeto. Isso pode ser feito com um simples arrastar e soltar. Além disso, ao adicionar sua imagem ao storyboard, verifique se o nome da imagem no canto superior esquerdo também corresponde ao nome real do arquivo de imagem. Eu também tentaria investigar as restrições. Espero que isto ajude. Boa sorte com seu aplicativo.


fonte
2

Passei horas com esse problema antes de finalmente perceber meu erro. Quando você adiciona uma imagem a um UIImageView, ele usa apenas o nome da imagem. Se suas imagens estiverem em uma pasta diferente do seu storyboard, elas aparecerão no xcode, mas não ao executar o aplicativo. Você deve adicionar o prefixo do caminho do arquivo apropriado, por exemplo, images / image.png. Agora ele aparecerá como um ponto de interrogação azul no xcode, mas funcionará no aplicativo.

Prime624
fonte
2

Apenas para adicionar meus US $ 0,02 a esta pergunta; Resolvi isso usando imagens PNG em vez de imagens JPG / JPEG.

Depois de converter as imagens em PNG e processá-las para reduzir um pouco o tamanho, tudo funcionou bem.

Gee.E
fonte
2

Depois de investir muito tempo, obtive a solução: -

Step 1:- Quit Xcode
Step 2:- Delete the app from device/simulator
Step 3:- Restart your device (if you are using simulator then you have to quit simulator)
Step 4:- Clear all derived data 
Step 5:- Clear Bin
Step 6:- Open Xcode and relaunch the app, it will work 
Vipul Kumar
fonte
funcionou para mim obrigado
Dilip Tiwari
@DilipTiwari seu bem-vindo :)
Vipul Kumar
1

Eu enfrentei o mesmo problema. Tentei soluções diferentes para isso, mas nada provou ser útil. Percebi então que a imagem não estava visível apenas quando instalei o aplicativo diretamente no dispositivo e ele ainda está conectado ao xcode. Se eu desconectá-lo e abrir o aplicativo, a imagem estava visível conforme o esperado. Pode ser um bug do xcode.

Preeti Rani
fonte
1

Tentei limpar o projeto, remover o png, remover as restrições não funcionou para mim.

Acabei de fazer mais uma cópia da imagem e renomeei a cópia, excluí a imagem antiga e adicionei a nova imagem (Idem, com o nome alterado). Acabei de dar essa imagem e funcionou para mim.

Também não estou usando o Assets.xcassets, usando a imagem em uma pasta.

R. Mohan
fonte
1

Eu tentei muitas coisas com isso (este tópico por si só parece ter um milhão de idéias e metade delas são conflitantes). O problema para mim foi que, quando eu fazia coisas como reiniciar o dispositivo e o Xcode, a imagem era exibida por algumas sessões do aplicativo e depois parava (não faço ideia do porquê, mas WOW era irritante) .

Após inúmeras horas, descobri que a resposta da AG neste tópico é a correta. A única coisa que eu estava fazendo errado era que estava criando um novo conjunto de imagens no xcassets, mas ainda estava usando o nome da imagem no UIImageView dentro do storyboard em vez de usar o nome do conjunto de imagens.

Para esclarecer, o que você faria é criar um novo conjunto de imagens e nomeá-lo como "Launch-Defaults" e adicione suas imagens a ele. Em seguida, no UIImageView dentro do storyboard, você usa a imagem "Launch-Default" (sem incluir uma extensão, pois não há nenhuma, pois esse é um conjunto de imagens).

Quando você faz tudo isso, a imagem deve aparecer corretamente dentro do seu storyboard. Algumas pessoas dizem que a imagem será exibida em branco se você não usar a extensão (.jpg ou .png), mas presumo que seja porque elas não estão usando o nome do conjunto de imagens. Outros dizem que você precisa usar uma extensão como .png ou .jpg, mas a chave é criar o conjunto de imagens dentro do xcassets e depois usá-lo dentro do storyboard. Quando feito corretamente, não deve haver estranheza, como uma imagem que não aparece ou a tela de inicialização funcionando apenas algumas vezes (exigindo uma reinicialização).

John Holtkamp
fonte
1

No meu caso particular, a tela inicial funcionou para o simulador e outros dispositivos, mas parou de funcionar para um dispositivo específico. Isso me levou a acreditar que havia alguns dados de armazenamento em cache mantidos pelo xcode (v10 e iPhone 7 v12.1).

Excluí os dados derivados em: ~/Library/Developer/Xcode/DerivedData/ apenas esvaziando o conteúdo da pasta, não excluindo a pasta. Reiniciei o mac e o iPhone, limpei e reconstruí o projeto, e agora ele está aparecendo.

Não tenho certeza se tudo isso era necessário, mas não queria perder mais tempo para reduzi-lo, então a abordagem da marreta acima funcionou para mim. Mas é claro que sempre depende da sua situação específica - a minha era específica do dispositivo; para outros, pode ser a imagem real ou o layout da tela de inicialização etc.

zkon
fonte
1

O meu problema.

Motivo: renomeei as imagens depois de arrastá-lo para o Xcode. Solução: não renomeie as imagens depois de arrastá-lo para o Xcode. Cria problemas para entender o Xcode. Renomeie as imagens antes de arrastar / adicionar ao Xcode.

Espero que te ajude!

Wajahat Hussain
fonte
0

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 - veja a imagem abaixo:

insira a descrição da imagem aqui

Brian
fonte
0

No meu caso, aconteceu que eu ainda tinha algumas visualizações vinculadas ao controlador de visualização que agora era apenas um controlador de visualização básico. Se eu clicar com o botão direito do mouse na visualização, posso ver as saídas com avisos, no entanto, os avisos não apareceram no Xcode, e é por isso que estava tendo problemas para encontrá-los.

Gujamin
fonte
0

Esse é um problema de armazenamento em cache no XCode / iOS, mas há uma correção simples para isso: basta renomear o arquivo dentro de Assets.xcassets, para que o cache seja regenerado.

thatmarcel
fonte
0

Meu primeiro erro foi que eu criei um .storyboard normal, o renomeei e o defini como tela de inicialização nas configurações do projeto. Neste caso, tive problemas de imagem. Parece que algumas configurações estão faltando nesse caso, então, então eu apenas criei um novo arquivo via file-> new e peguei diretamente a "Tela de Lançamento" e funcionou.

Eu também tinha em mente que, por algum motivo, essas restrições de layout não são suportadas na tela de inicialização. Talvez tenha sido assim no começo, não tenho certeza, mas agora as restrições devem funcionar.

Talvez isso ajude alguém.

Tim Christmann
fonte
0

Eu enfrentei esse mesmo problema ao usar o launch-storyboard para mostrar a tela inicial e, após pesquisas, descobri que a imagem que defini no launch-storyboard é de tamanho diferente e configurei a visualização de imagem maior que o tamanho real da imagem.

Portanto, a solução que encontrei é definir o tamanho do conteúdo da visualização da imagem como tamanho adequado ou definir o tamanho da visualização da imagem como tamanho da imagem.

Por exemplo, se o tamanho da sua imagem com tamanho 1x for 200X200, a visualização da imagem deve ser 200X200 e você resolverá esse problema.

Como se você definir um tamanho de visualização da imagem maior que a imagem, a imagem será engomada e isso não será permitido.

Se você ainda tiver alguma dúvida, por favor comente aqui e pergunte

Hardik Vyas
fonte