Eu tenho um aplicativo compatível com iOS8 e posterior, embutido no Xcode 7 e estou usando um XIB para uma tela de inicialização (não tenho imagens de inicialização). A exibição contém um único UILabel com a versão do aplicativo e 2 UIImageViews com imagens que estão presentes em Images.xcassets: um logotipo e uma imagem inicial.
O UILabel e a imagem do logotipo aparecem corretamente quando inicio o aplicativo, mas a imagem inicial não aparece se eu executar o aplicativo em um iPad Air 2 com iOS9. Testei em simuladores Air e Mini executando iOS8 e iOS9 para iPad 2, iPad Air e iPad Air 2 e a imagem aparece corretamente em todos eles.
Executei uma solução básica de problemas para descobrir se eu conseguia descobrir o que está acontecendo, mas não consegui resolvê-la e a única diferença que posso ver entre a imagem que está funcionando e a que está falhando é quando a adicionei ao ativos...
Aqui está um resumo do que eu sei:
O UIImageView da imagem inicial está no local correto, no tamanho correto. Percebo isso porque defino a cor de fundo para verde apenas para garantir. A vista está lá, mas a imagem não aparece. Portanto, estou assumindo que a visão não é a culpada.
Definir o UIImageView para a imagem inicial também usar a imagem do logotipo faz com que a imagem do logotipo apareça no local correto para a exibição. Isso também me leva a supor que a visão não tem culpa.
A UIImage que estou usando na exibição da imagem inicial é usada em outros lugares do aplicativo e aparece bem nessas outras exibições (a imagem do logotipo também é usada em outros lugares no aplicativo e aparece bem). Portanto, estou assumindo que a imagem é válida e que ela apareça em outras visualizações não é um problema.
Confirmei que as configurações do UIImages para o logotipo e o splash no arquivo xcassets são as mesmas. Eles são definidos como Universal, Qualquer largura e altura, vários fatores de escala, renderizados como padrão. Há uma diferença - o logotipo tem escalas de 1x, 2x e 3x, enquanto a imagem inicial tem apenas 1x e 2x, mas também tentei usar o UIImages com apenas valores de 1x e 1x e 2x no UIView e eles funcionam (se eles forem adicionado ao projeto há algum tempo).
A adição de outra imagem de tamanho ou formato diferente (PNG e JPG) aos meus xcassets e o uso da UIImage no UIImageView para a imagem inicial também não são exibidos.
Adicionando outra UIImageView ao arquivo XIB e alocando uma UIImage que já estava no xcassets funciona, a imagem aparece na tela de carregamento.
Copiar e renomear os arquivos de imagem usados para o logotipo e adicioná-los ao projeto e, em seguida, usar essa UIImage na exibição inicial também não são exibidos.
Tentei limpar o projeto, reiniciar a máquina de desenvolvimento e excluir o aplicativo do Air 2 e reinstalá-lo apenas no caso de um problema.
Essas três últimas etapas me levam a acreditar que há um problema com as imagens adicionadas após um certo ponto na vida útil do arquivo do projeto. Enquanto eu atualizei para o Xcode 7 ontem, a imagem inicial foi adicionada originalmente no Xcode 6, mas a imagem do logotipo (também adicionada no Xcode 6) foi adicionada alguns meses antes.
Procurei nos arquivos json a imagem do logotipo e a imagem inicial e eles parecem ter o mesmo formato. Eu também vasculhei o arquivo pbxproj procurando diferenças e não consigo ver nenhuma.
Então, eu queria saber se alguém tem alguma idéia de por que a tela de lançamento pode não exibir essas novas imagens que estou adicionando especificamente ao Air 2? Outras perguntas que tenho lido relacionadas a imagens que não aparecem parecem estar relacionadas a Iniciar imagens ou a imagens em arquivos XIB que possuem classes associadas, nenhuma das quais parece relevante aqui.
Respostas:
Desligue e, em seguida, ligue novamente.
Sério, reinicie o dispositivo - foi o que o corrigiu para mim.
Aqui está o que não funcionou:
Observações mais antigas:
Assim como os outros, ele:
O que eu lembro de ter acionado a primeira versão em que parou de funcionar foi desconectar o iPhone enquanto ele estava funcionando. (Não tenho certeza se está relacionado.)
No entanto, o git reset não corrigi-lo (combinado com todas as etapas limpas que não estão funcionando) me diz que isso deve estar ficando em cache em outro lugar. Muito possivelmente em um dos arquivos .gitignored? (Estou usando o arquivo ignorar Git para projetos Xcode )
Uma solução alternativa que funcionava para um UIImageView (no UIView que possui três), mas não para os outros, estava colocando a imagem em um arquivo .xcassets. A reversão para o arquivo de imagem simples não desfez a correção. (Realmente parece um erro de armazenamento em cache).
ATUALIZAÇÃO: Veja na parte superior - reiniciar o dispositivo é o que o corrigiu. Sinto que os dados de bitmap incorretos estão sendo armazenados em cache no próprio dispositivo.
Radar: http://openradar.appspot.com/23534818
fonte
"A solução para mim foi simplesmente garantir que a caixa" Limpa o contexto de gráficos "esteja desmarcada para o UIImageView no storyboard. Basta alterar isso para corrigi-lo." Nenhuma outra solução funcionou para mim. Entendi no fórum de desenvolvedores da apple
fonte
Eu tive exatamente o mesmo problema em um iPhone 6.
O fato muito estranho é que eu era capaz de usar outra imagem das minhas images.xcassets que tinham o mesmo tamanho, compressão, espaço de cores ...
Não consigo descobrir por que ele não funciona, mas encontrei uma solução: basta colocar seu arquivo fora do seu images.xcassets e usar seu nome completo (com extensão) no Interface Builder
Espero que esta ajuda!
fonte
A seguinte sequência de operações corrigiu o problema para mim no Xcode 7.3.1 e iOS 9.3.4:
fonte
Muitas outras respostas sugerem a reinicialização de dispositivos e / ou a reconstrução e / ou reinstalação da solução.
Embora essas respostas funcionem para alguns de nós, o motivo é que o aplicativo é forçado a "refazer" ou "reconstruir" os snapshots em cache.
As capturas instantâneas em cache são usadas pelos aplicativos para apresentar imagens antes que os dados de suporte sejam carregados na memória, incluindo o catálogo de ativos que contém imagens do storyboard.
Essa resposta do SO por @jaga fornece a solução, mas não o motivo, porque o UIImageViews está ausente na tela de inicialização no dispositivo (mas não no simulador).
fundo
Recentemente, tentei usar uma fonte personalizada no meu arquivo "Launch Screen.storyboard".
O motivo pelo qual eu não pude ficar claro depois de ler esta resposta do SO da @ TimCamber, que me levou a fazer um pouco mais de pesquisa e teste.
O motivo pelo qual uma fonte personalizada não está incluída no meu arquivo Launch Screen Storyboard é o mesmo motivo pelo qual uma imagem em um catálogo de ativos não está incluída ...
O aplicativo prepara instantâneos retrato e paisagem da tela de inicialização do aplicativo a partir do arquivo Storyboard do Launch Screen e (atualmente) o salva no pacote de aplicativos aqui:
/Library/Caches/Snapshots/<<app_bundle>>/
e/Library/Caches/Snapshots/<<app_bundle>>/downscaled/
.Esse processo é concluído antes do carregamento de qualquer arquivo de suporte, incluindo fontes personalizadas e o catálogo de ativos.
Solução
Como mencionado acima, seguindo a solução da @ jaga, literalmente tudo o que é necessário é:
fonte
Eu estava vendo o mesmo problema. Reiniciar o dispositivo (iPhone 6) e reconstruir o aplicativo no dispositivo é a única coisa que o corrigiu. Eu tentei muitas outras dicas e sugestões, mas nada mais funcionou. Somente a reinicialização + reconstrução ajudou.
fonte
Minha solução @iOS 11.x:
.jpg
imagem em vez de.png
. Eu acho que o tamanho do arquivo de imagem é importante;.xcassets
;fonte
.xcassets
ajudouEu tinha o mesmo para o aplicativo instalado no TestFlight. Excluir aplicativo -> reiniciar o iPhone -> reinstalar o aplicativo funciona para mim. Apenas reinstalar o aplicativo ou apenas reiniciar o dispositivo não ajudou.
fonte
Eu estava tendo o mesmo problema, mas reiniciar o dispositivo não ajudou. O que funcionou para mim foi excluir o UIImageView do meu storyboard de lançamento e adicionar um novo.
fonte
Você já tentou desligar e ligar o dispositivo novamente? Faça.
fonte
O que funcionou para mim foi selecionar Redefinir conteúdo e configurações ... no menu Simulador
fonte
Tire as imagens do Image.xcassets e adicione-as novamente ao projeto. Funcionou para mim.
fonte
Remova o aplicativo do celular e, em seguida, reinicie o celular e instale o aplicativo novamente. agora os problemas serão resolvidos
fonte
Eu uso o dispositivo iPhone 5s, também conheço esse problema.
Eu o corrigo:
Eu acho que há algo errado no Xcode usar memória, o sistema pode alocar um pouco de memória para o Xcode, porque o Xcode desenhou a imagem do almoço falhou (no meu computador, o Xcode funcionou por várias semanas sem fechar)
fonte
Eu também tive esse problema exato no Xcode 7 com dispositivos iPad e iPhone. Embora não faça sentido, fui capaz de contorná-lo na maioria das vezes, definindo não apenas a imagem, mas também a imagem destacada na exibição da imagem para a mesma imagem em meus images.xcassets.
fonte
Eu acho que a tela de lançamento suporta apenas imagens no Assets.xcassets.
fonte
funcionou para mim.
Primeiro no xcode clean de project.
Se você usar o simulador, exclua o aplicativo e reinicie.
Se você usa um dispositivo, exclua o aplicativo e reinicie o dispositivo.
fonte
Reiniciar o Xcode fez isso por mim.
O que não fez isso:
fonte
Selecione o ImageView e remova a extensão da imagem (.png ou .jpg) na guia Inspetor de atributos> Exibição de imagem> Imagem> Nome da imagem.
No launchscreen.storyboard, a imagem não aparecerá, mas estará presente no dispositivo. Isso funcionou para mim.
fonte
Parecia um bug do iOS. Como às vezes a animação do sistema desapareceu.
Agora, basta reiniciar o iPhone e ele funciona para mim.
fonte
No meu caso, eu era o nome da imagem .
Eu adicionei uma imagem chamada
[email protected]
Adicionei LaunchScreen.xib - uma das minhas telas de inicialização antigas apenas para fins de teste. Eu estava construindo no iPhone X Simulator, a imagem não apareceu.Alterar o nome para algo neutro (MyImage.png) resolveu o problema.
Parece que isso também
@2x
fazia parte do problema-568h
. O que faz algum sentido em um-812h@3x
dispositivo.fonte
Isso é muito importante. Deve estar vazio !
Launch Screen File
fonte
A solução simples é usar JPG em vez de PNG.
fonte
Tenho o mesmo problema com o imageView um storyboard da tela de lançamento. Eu removi a referência da imagem do projeto, renomeei minha imagem e a adicionei novamente ao projeto. Tudo funciona perfeitamente.
fonte
Também pode 1. excluir a imagem do projeto 2. alterar o nome da imagem 3. adicionar a imagem do arquivo ao projeto
Funcionou para mim.
fonte
Eu tive esse problema no iOS 10 em um iPhone 6 e também no Simulador. Minha imagem estava em uma pasta e esse parecia ser o problema. Removai a imagem da pasta no Xcode e a coloquei no diretório base do projeto, que resolveu o problema.
fonte
Eu experimento o mesmo. Altero a resolução da imagem de 300 pixels / polegada, altero para 72. Funciona para mim.
fonte
Em seguida me ajudou:
Também é muito importante : verifique se o seu é o xib não aberto em outra guia, que também pode causar isso!
fonte
Encontrei uma solução simples, mas radical, que funcionou para mim:
1 - Exclua o arquivo: LaunchScreen.storyboard e mova-o para a lixeira.
2 - Produto -> Limpo
3 - Crie um novo arquivo de tela de inicialização chamado: LaunchScreen.storyboard e coloque suas imagens nele
4 - Salvar e construir
Isso funcionou para mim depois de tentar métodos complexos por horas ... Parece que meu LaunchScreen.storyboard estava bloqueado para gravação e não pôde ser salvo ou um processo estranho de armazenamento em cache estava bloqueando-o.
fonte
Nome da imagem é o problema. Renomeie o nome da imagem usada dentro do storyboard da tela Iniciar. Certifique-se de não usar nenhum caractere que não seja alfanumérico (não use "_- & @"). Trabalhou para mim como um encanto.
fonte