Scenorys na ekranie uruchamiania nie wyświetla obrazu


162

Próbuję wyświetlić obraz jako ekran uruchamiania z mojego pliku Launch Screen.storyboard, ale obraz nigdy nie jest wyświetlany. Mam etykiety, które są dobrze widoczne, ale obraz się nie pojawia.

Oto jak wygląda ekran uruchamiania w pliku Launch Screen.storyboard: wprowadź opis obrazu tutaj

Jednak gdy uruchamiam aplikację na symulatorze (a także na urządzeniu fizycznym), pojawia się to:

wprowadź opis obrazu tutaj

Jak widać, etykieta „Test” wyświetla się dobrze, ale obraz się nie wyświetla. Naprawdę nie jestem pewien, dlaczego tak się dzieje i nic, co próbuję, nie wydaje się działać. Jeśli ktoś ma jakieś pomysły, jak to naprawić, byłby bardzo wdzięczny.


1
upewnij się, że obraz jest w odpowiednim formacie png . nie jpg, jeśli jest.
Utkarsh Singh


3
Fakt, że wiele całkowicie różnych odpowiedzi ma wiele pozytywnych głosów, jest bardzo, bardzo smutny.
Daniel Springer,

1
Czy to możliwe, że jeśli obraz jest zbyt duży, a jego ładowanie trwa zbyt długo, jest usuwany z ekranu startowego?
Lubbo,

@Lubbo Myślę, że jest coś w tej teorii. Mam widok uruchamiania, który ma duży i mały obraz, mały ładuje się dobrze, a duży nie. Mały obraz znajduje się w xcassets, a duży, który wypróbowałem zarówno w pliku zasobów, jak i poza nim.
Tom Bates

Odpowiedzi:


327

Po ponownym uruchomieniu Xcode, wyczyszczeniu kompilacji i wielu innych sugestii dotyczących SO dotyczących tego problemu. To, co naprawiło to dla mnie, to twardy restart urządzenia. (Zmarnowałem na to ponad godzinę)

Przypuszczam, że to po prostu pokazuje, że stare powiedzenie, że wyłączyłeś to i włączyłeś, jest nadal aktualne w przypadku najnowszych gadżetów!

Jak zrestartować iPhone'a XS lub iPhone'a XS Max

  1. Szybko naciśnij i zwolnij przycisk zwiększania głośności
  2. Szybko naciśnij i zwolnij przycisk zmniejszania głośności
  3. Naciśnij i przytrzymaj przycisk boczny, aż pojawi się logo Apple

30
Ten facet ma rację. Po prostu twardy restart urządzenia naprawił to za mnie!
Lance Samaria

4
Problem z brakiem aktualizacji obrazu po nadpisaniu go w zasobach. Dzięki za wskazówkę, całkowite opuszczenie symulatora i ponowne uruchomienie zaktualizowało podgląd. Bardzo dziwne, że nic innego nie pomagało.
Kilian

3
Dzięki. Działa również w symulatorze. Po ponownym uruchomieniu symulatora w końcu pojawia się obraz w Launch Scree.storyboard. To zdecydowanie błąd iOS.
Vince Yuan

4
Mam ten sam problem. Nawet jeśli zmieniłem obraz na ekranie startowym w symulatorze, stary obraz był nadal w pamięci podręcznej mojego telefonu. Próbowałem wyczyścić kompilację, zmienić nazwę pliku, zmienić obraz, nie działa. Musiałem wyłączyć i włączyć telefon. To naprawiło.
Paul,

3
To jest rok 2020 i to wciąż uratowało mi dzień! Dzięki!
Bezaleel

91

Ja też bawiłem się tym godzinami. Ale teraz znalazłem rozwiązanie. Musisz dodać obraz do swojego projektu, a także do asset.xcassets metodą przeciągnij i upuść.


8
To było to. Obraz musiał znajdować się zarówno w projekcie, jak i zasobach. To jest jak gra w walenie w kreta. Która wskazówka to naprawi? nikt nie wie.
FranticRock

kto wiedział, że w projekcie trzeba też dodać obraz
Abdul Waheed

2
Dodanie zdjęcia tylko do projektu rozwiązało mój problem :)
Sneha

3
Dziękuję, to załatwiło sprawę dla mnie. Aby to dodać, wcześniej nadałem obrazom nazwę o rozmiarze (launch280.png, launch560.png, launch840.png), a także dodałem zasób do Assets.xcassets z nazwą zasobu launch. Ale to nadal nie działało. Musiałem zmienić nazwy plików graficznych na launch.png, launch@2x.png i launch@3x.png, dodać je do projektu, dodać jako zasób o nazwie launch, a potem zadziałało. Dzięki Apple za niepotrzebnie skomplikowane najprostsze rzeczy ¬_¬
mashers

2
Aaa i jestem tu drugi raz 3 lata później ... Jest kwiecień 2020 r., XCode wciąż ma ten błąd ...
Świetnie

42

Miałem ten sam problem, dodanie obrazu do „Fazy budowy -> Kopiuj zasoby pakietu” rozwiązało go za mnie.


6
To jest to, czego potrzebowałem. Obraz musi znajdować się w pakiecie głównym, a nie w pliku zasobów.
Meonardo

To właśnie zrobiło to dla mnie.
Chris

Naprawiłem to dla mnie, dzięki!
adam eliezerov

28

Wykonaj poniższe kroki,

  1. Usuń aplikację z urządzenia
  2. Uruchom ponownie urządzenie
  3. Zbuduj ponownie

Jeśli nie działa, usuń dane pochodne. Preferencje Xcode-> karta Lokalizacja-> Dane pochodne. Następnie wykonaj powyższe kroki.


25

Przydarzyło mi się to i doprowadza mnie do szału, poza tym, że tracę kilka minut, zanim to rozgryzę.

Tak więc, jak powiedziano wcześniej:

  1. Zaimportuj żądany obraz do projektu Xcode (po prostu przeciągnij i upuść)
  2. Zmień jego ograniczenia i wyrównanie
  3. Zaktualizuj ramki rozwiązujące problemy z automatycznym układem
  4. W menu zakładki Inspektora atrybutów (zwykle w prawym rogu menu xCode), w widoku obrazu> Obraz, usuń rozszerzenie obrazu (.png lub .jpg) - to jest sztuczka

Na ekranie projektu nie pojawi się, ale po uruchomieniu aplikacji zostanie wyświetlona.

Mam nadzieję, że to pomoże!


1
pracował dla mnie! przed wypróbowaniem twojego rozwiązania jedynym sposobem, w jaki je pokazałem, było ponowne uruchomienie telefonu! Dziękuję
Filipe Sá

1
Dziękuję Ci! Nie mam pojęcia, jak to znalazłeś, ale działa!
Stas Volskiy

W rzeczy samej!! Sztuczka polega na usunięciu rozszerzenia obrazu z plików graficznych .png! Pliki .jpg nie działały, więc musiałem najpierw przekonwertować je na .png! Wielkie dzięki, Jhnosore!
Aktywny

24

Bardzo frustrujące. Rozwiązanie, które w końcu zadziałało:

  1. Wykonaj twardy restart urządzenia

  2. Usuń aplikację

  3. Zainstaluj aplikację z Xcode


17

W końcu uruchom ponownie telefon działa dla mnie !!

Spędziłem godziny nad tą kwestią. Próbowałem zmienić nazwę obrazów, usunąć całe zasoby obrazu, zmodyfikować info.plist, zrestartować Xcode, a nawet próbować ustawić wszystkie atrybuty obrazów (co możesz powiedzieć, jak zdesperowany byłem).


To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować każdy post ; zamiast tego udziel odpowiedzi, które nie wymagają wyjaśnień od pytającego . - Z recenzji
Adam Richardson,

Przykro mi @AdamRichardson, zapewnia odpowiedź i poprawną i tak było w moim przypadku. Musiałem tylko ZRESTARTOWAĆ telefon / symulator.
Kegham K.

Spędziłem 16 godzin próbując rozwiązać ten problem i ostatecznie ponowne uruchomienie telefonu załatwiło sprawę.
Krishnan

2
Założę się, że ktoś w Apple, który mógłby to naprawić, musi pomyśleć: „Och, po prostu muszą ponownie uruchomić swoje telefony - to nie ma wpływu na kompilacje wydania czy cokolwiek innego. Możemy zostawić to zadanie na później”.
dinesharjani

Ostatecznie zakończyło się ponownym uruchomieniem telefonu, który rozwiązał problem
Taylor Maxwell

12

Ten problem jest związany z plikiem Assets.xcassets, aby go naprawić, musisz dodać obraz jako zasób, ale nie w folderze xcassets, a następnie powinien działać dobrze


2
To jedyne rozwiązanie sprawdzone do tej pory. Ponowne uruchomienie xcode, wyczyszczenie danych pochodnych, zmiana nazwy obrazu nie zadziałało. Nie polecam restartowania urządzenia nikomu jako rozwiązania
NightFury

ten błąd jest tak stary, jak tworzenie xcassets. Wypełniłem go mentalnie w folderze „rzeczy, których jabłko nigdy nie rozwiąże”.
Duck

8

W moim przypadku zresetowanie zawartości i ustawień symulatora rozwiązało problem.


7

Miałem ten sam problem.

  1. Dodaj nowy zestaw obrazów do XcodeAssets.
  2. Dodaj obrazy do zestawu obrazów.
  3. Dodaj widok obrazu, aby uruchomić ekran i ustawić zestaw obrazów jako obraz
  4. W inspektorze atrybutów Imageview usuń zaznaczenie opcji „czyści kontekst grafiki”
  5. Wyczyść folder kompilacji i uruchom ponownie.

wprowadź opis obrazu tutaj


5

Wygląda na to, że jest jakiś problem z buforowaniem zasobów w xCode. Miałem ten sam problem, zrestartowałem xCode i po tym wszystko działa dobrze.



3

Po wypróbowaniu wszystkiego w kilku wątkach StackOverflow, oto, co zadziałało:

  • Użyj pliku .png
  • Nie umieszczaj go w katalogu aktywów. Dodaj go bezpośrednio do hierarchii projektu, tak jak dodasz dowolny plik źródłowy.
  • W widoku obrazu wczytaj obraz wraz z jego rozszerzeniem. Przykład: launch_app_image.png

(Może być konieczne wyczyszczenie produktu lub danych pochodnych w celu aktualizacji, ale nie musiałem)


2020 i jest to nadal aktualne, czasami zmiana obrazu na nowy plik PNG w katalogu, gdy działa, zatrzyma go. Nie jestem pewien, czy jest to kwestia poziomu kompresji, ale zwykłe pliki graficzne działają.
Mitchell Currie

3

Miałem ten problem po dodaniu obrazu do projektu i zestrzeleniu urządzenia problem został rozwiązany


3

Zmieniłem obraz tła ekranu powitalnego, a nowy obraz nie był wyświetlany (reaguj na natywny projekt).

Śledzenie odpowiedzi innych.

Zrobiłem wszystko poniżej i zostało to naprawione:

  • Czysta kompilacja.
  • Usuń aplikację z symulatora
  • Zamknij symulator
  • Uruchom ponownie XCode
  • Uruchom aplikację ponownie

3

W tej chwili dostępne jest urządzenie siatkówkowe i zignorowałem @1xobraz w Assets.xcassets.

W moim przypadku na ekranie powitalnym mam logo aplikacji, które nie jest widoczne po uruchomieniu aplikacji.

Po marnować tyle czasu zorientowali się, że tylko pod warunkiem @2xi @3xzdjęć do tego obrazu logo.

Ten problem został rozwiązany przez dodanie @1xwersji tego obrazu.


1
uratowałeś mi dzień!
kambala

2

Musisz upewnić się, że nazwa pliku twojego obrazu ma na końcu format taki jak .png lub .jpg, w przeciwnym razie nie będzie działać. Ponadto przed dodaniem obrazu musisz się upewnić, że plik obrazu znajduje się w folderze „Assets.xcassets” w projekcie. Można to zrobić za pomocą prostego przeciągania i upuszczania. Ponadto upewnij się, że po dodaniu obrazu do serii ujęć nazwa obrazu w lewym górnym rogu również odpowiada rzeczywistej nazwie pliku obrazu. Spróbowałbym też przyjrzeć się ograniczeniom. Mam nadzieję że to pomoże. Powodzenia z Twoją aplikacją.


2

Spędziłem godziny nad tym problemem, zanim w końcu zdałem sobie sprawę z mojego błędu. Po dodaniu obrazu do UIImageView użyje tylko nazwy obrazu. Jeśli twoje obrazy znajdują się w innym folderze niż twoja storyboard, pojawią się w xcode, ale nie podczas uruchamiania aplikacji. Musisz dodać odpowiedni przedrostek ścieżki do pliku, na przykład images / image.png. Pojawi się teraz jako niebieski znak zapytania w xcode, ale będzie działać w aplikacji.


2

Dodam tylko 0,02 $ do tego pytania; Rozwiązałem to, używając obrazów PNG zamiast obrazów JPG / JPEG.

Po przekonwertowaniu obrazów do formatu PNG i przetworzeniu ich w celu zmniejszenia rozmiaru wszystko działało dobrze.


2

Po zainwestowaniu dużej ilości czasu otrzymałem rozwiązanie: -

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 

zadziałało dla mnie dzięki
Dilip Tiwari

@DilipTiwari witamy :)
Vipul Kumar

1

Zmierzyłem się z tym samym problemem. Próbowałem różnych rozwiązań, ale nic nie okazało się pomocne. Wtedy zdałem sobie sprawę, że obraz nie był widoczny tylko wtedy, gdy bezpośrednio zainstalowałem aplikację na urządzeniu, a aplikacja jest nadal połączona z xcode. Jeśli odłączę go, a następnie otworzę aplikację, obraz był widoczny zgodnie z oczekiwaniami. To może być błąd xcode.


1

Próbowałem wyczyścić projekt, usunąć png, usunąć ograniczenia nie działały u mnie.

Właśnie zrobiłem jeszcze jedną kopię obrazu i zmieniłem nazwę kopii, a następnie usunąłem stary obraz i dodałem nowy obraz (taki sam, ze zmienioną nazwą) Po prostu dałem ten obraz i zadziałał dla mnie.

Nie używam również pliku Assets.xcassets, używając obrazu w folderze.


1

Próbowałem z tym tylu rzeczy (sam ten wątek wydaje się mieć milion pomysłów, a połowa z nich jest sprzeczna). Problem dla mnie polegał na tym, że kiedy robiłem takie rzeczy jak ponowne uruchomienie urządzenia i Xcode, powodowałoby to, że obraz wyświetlał się przez kilka sesji aplikacji, a potem się zatrzymywał (nie mam pojęcia dlaczego, ale WOW to było denerwujące) .

Po niezliczonych godzinach stwierdziłem, że odpowiedź AG w tym wątku jest poprawna. Jedyną rzeczą, którą robiłem źle, było to, że tworzyłem nowy zestaw obrazów w xcassets, ale nadal używałem nazwy obrazu w UIImageView wewnątrz serii ujęć, zamiast używać nazwy zestawu obrazów.

Aby wyjaśnić, co należy zrobić, to utworzyć nowy zestaw obrazów i nazwać go czymś w rodzaju „Launch-Defaults”, a następnie dodać do niego swoje obrazy. Następnie w UIImageView wewnątrz scenorysu używasz obrazu „Launch-Default” (bez rozszerzenia, ponieważ nie ma go, ponieważ jest to zestaw obrazów).

Kiedy to wszystko zrobisz, obraz powinien faktycznie pojawić się poprawnie w twojej planszy. Niektórzy twierdzą, że obraz będzie pusty, jeśli nie użyjesz rozszerzenia (.jpg lub .png), ale zakładam, że dzieje się tak dlatego, że nie używają nazwy zestawu obrazów. Inni twierdzą, że musisz użyć rozszerzenia, takiego jak .png lub .jpg, ale kluczem jest utworzenie obrazu ustawionego w xcassets, a następnie użycie tego zestawu obrazów w scenorysie. Po prawidłowym wykonaniu nie powinno być żadnych dziwactw, takich jak brak wyświetlania obrazu lub ekran uruchamiania działający tylko przez pewien czas (wymagający ponownego uruchomienia).


1

W moim przypadku ekran powitalny działał dla symulatora i innych urządzeń, ale przestał działać dla jednego konkretnego urządzenia. To doprowadziło mnie do przekonania, że ​​były to dane buforowania przechowywane przez xcode (v10 i iPhone 7 v12.1).

Usunąłem uzyskane dane pod adresem: ~/Library/Developer/Xcode/DerivedData/ tylko opróżniając zawartość folderu, nie usuwając folderu. Następnie zrestartowałem Maca i iPhone'a, wyczyściłem i odbudowałem projekt, a teraz się pojawia.

Nie jestem pewien, czy to wszystko było konieczne, ale nie chciałem tracić więcej czasu na zawężanie tego, więc powyższe podejście do młota kowalskiego zadziałało dla mnie. Ale oczywiście zawsze zależy to od twojej konkretnej sytuacji - mój był specyficzny dla urządzenia; dla innych może to być rzeczywisty obraz lub układ ekranu startowego itp.


1

Mój problem.

Powód: zmieniłem nazwy obrazów po przeciągnięciu ich do Xcode. Rozwiązanie: nie zmieniaj nazw obrazów po przeciągnięciu ich do Xcode. Stwarza problemy ze zrozumieniem Xcode. Zmień nazwy obrazów przed przeciągnięciem / dodaniem do Xcode.

Mam nadzieję, że ci to pomoże!


0

Właśnie to rozgryzłem. Mój obraz startowy się nie wyświetlał, podczas uruchamiania na urządzeniu (iPhone 6, 7+) lub testFlight pojawia się biały ekran. Poprawka: zmieniono nazwę „Landing_screen.png” na „Landing_screen”, usuwając część .png. Ikona obrazu w Xcode została zmieniona na białą ikonę, aw scenorysie ekranu startowego obraz pojawia się teraz jako znak zapytania. Pojawia się teraz obraz startowy, a nie biały ekran. Moja konfiguracja: używam Swift 3.1 z Xcode 8.3.1. W LaunchScreen.storyboard dodałem prosty widok obrazu i rozciągnąłem go, aby pasował do kontrolera widoku. Ustawiłem ograniczenia automatycznego układu Górna / Dolna / Wiodąca / Końcowa przestrzeń do nadzoru na 0 - patrz obrazek poniżej:

wprowadź opis obrazu tutaj


0

W moim przypadku okazało się, że niektóre widoki są nadal połączone z kontrolerem widoku, który był teraz tylko podstawowym kontrolerem widoku. Jeśli kliknę na widok z wciśniętym klawiszem Ctrl, widzę gniazda z ostrzeżeniami, jednak ostrzeżenia nie pojawiły się w Xcode, przez co miałem problemy ze znalezieniem ich.


0

Zdarza się, że jest to problem z buforowaniem w XCode / iOS, ale istnieje prosta poprawka: po prostu zmień nazwę pliku w Assets.xcassets, aby pamięć podręczna została zregenerowana.


0

Moim pierwszym błędem było to, że utworzyłem normalny .storyboard, zmieniłem jego nazwę i zdefiniowałem jako ekran startowy w ustawieniach projektu. W tym przypadku miałem problemy z obrazem. Wygląda na to, że w tym przypadku brakuje niektórych ustawień, więc po prostu utworzyłem nowy plik przez plik-> nowy i wybrałem bezpośrednio „Ekran uruchamiania” i wtedy zadziałało.

Miałem również na uwadze, że z jakiegoś powodu ograniczenia układu nie są obsługiwane w ekranie startowym. Może na początku tak było, nie jestem pewien, ale teraz ograniczenia powinny działać.

Może to komuś pomoże.


0

Mam ten sam problem, gdy używam launch-storyboard do wyświetlania ekranu powitalnego i po badaniach stwierdziłem, że obraz, który ustawiłem w scenariuszu uruchamiania, ma inny rozmiar i ustawiłem widok obrazu większy niż rzeczywisty rozmiar obrazu.

Rozwiązaniem, które znalazłem, jest więc ustawienie rozmiaru widoku obrazu jako dopasowania proporcji lub ustawienie rozmiaru widoku obrazu jako rozmiaru obrazu.

Na przykład, jeśli twój obraz @ 1x ma rozmiar 200X200, a widok obrazu powinien mieć 200X200, to rozwiążesz ten problem.

Tak jakby, jeśli ustawisz rozmiar widoku obrazu większy niż obraz, obraz będzie wykrochmalony, a to jest niedozwolone.

Jeśli nadal masz jakiekolwiek wątpliwości, skomentuj tutaj i zapytaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.