Mam aplikację obsługującą system iOS8 i nowsze, wbudowaną w Xcode 7 i używam XIB do ekranu uruchamiania (nie mam obrazów uruchamiania). Widok zawiera pojedynczy UILabel z wersją aplikacji oraz 2 UIImageViews z obrazami, które oba są obecne w Images.xcassets: Logo i obraz powitalny.
UILabel i obraz logo są wyświetlane poprawnie po uruchomieniu aplikacji, ale obraz powitalny nie pojawia się, jeśli uruchomię aplikację na iPadzie Air 2 z iOS9. Testowałem na symulatorze Air i Mini z systemem iOS8 i iOS9 dla iPada 2, iPada Air i iPada Air 2, a obraz jest poprawnie wyświetlany we wszystkich tych urządzeniach.
Przeprowadziłem podstawowe rozwiązywanie problemów, aby dowiedzieć się, co się dzieje, ale nie byłem w stanie tego rozwiązać, a jedyną różnicą, którą widzę między obrazem, który działa, a tym, który zawodzi, jest to, że dodałem go do majątek...
Oto podsumowanie tego, co wiem:
UIImageView dla obrazu powitalnego znajduje się we właściwym miejscu, we właściwym rozmiarze. Mogę to powiedzieć, ponieważ dla pewności ustawiłem kolor tła na zielony. Widok jest tam, ale obraz się nie pojawia. Zakładam więc, że nie można winić tego widoku.
Ustawienie UIImageView dla obrazu powitalnego tak, aby używał również obrazu logo, powoduje, że obraz logo pojawia się we właściwym miejscu dla widoku. To prowadzi mnie również do założenia, że nie można winić tego widoku.
UIImage, którego używam w widoku powitalnym, jest używany gdzie indziej w aplikacji i pojawia się dobrze w tych innych widokach (obraz logo jest również używany w innym miejscu w aplikacji i wygląda dobrze). Zakładam więc, że obraz jest prawidłowy, a wyświetlenie go w innych widokach nie stanowi problemu.
Potwierdziłem, że ustawienia UIImages dla logo i splash w pliku xcassets są takie same. Są ustawione na Uniwersalny, Dowolna szerokość i wysokość, wiele współczynników skali, renderowanych jako domyślne. Jest jedna różnica - logo ma skale 1x, 2x i 3x, podczas gdy obraz powitalny ma tylko 1x i 2x, ale próbowałem również użyć UIImagów tylko z wartościami 1x, 1x i 2x w UIView i działają (jeśli były dodane do projektu jakiś czas temu).
Dodanie innego obrazu o innym rozmiarze lub formacie (PNG i JPG) do moich zestawów xcasset i użycie tego UIImage w UIImageView dla obrazu powitalnego również nie wyświetla się.
Dodanie kolejnego UIImageView do pliku XIB i przydzielenie mu UIImage, który był już w xcasset działa, obraz pojawi się na ekranie ładowania.
Kopiowanie i zmiana nazw plików graficznych używanych do logo oraz dodawanie ich do projektu, a następnie używanie tego UIImage w widoku powitalnym również nie jest wyświetlane.
Próbowałem wyczyścić projekt, ponownie uruchomić maszynę programistyczną, usunąć aplikację z Air 2 i ponownie zainstalować ją na wypadek, gdyby był problem.
Te trzy ostatnie kroki doprowadziły mnie do wniosku, że istnieje pewien problem z obrazami dodanymi po pewnym momencie życia pliku projektu. Podczas gdy wczoraj zaktualizowałem Xcode 7, obraz powitalny został pierwotnie dodany w Xcode 6, ale obraz logo (również dodany w Xcode 6) został dodany kilka miesięcy wcześniej.
Przejrzałem pliki json pod kątem obrazu logo i obrazu powitalnego i wydają się mieć ten sam format. Przeszukałem również plik pbxproj w poszukiwaniu różnic i nie widzę żadnych.
Zastanawiałem się więc, czy ktoś nie miał pojęcia, dlaczego ekran uruchamiania może nie wyświetlać tych nowych obrazów, które konkretnie dodaję na Air 2? Inne pytania, które czytałem, odnoszące się do obrazów, które nie pojawiają się wszystkie, wydają się dotyczyć albo obrazów uruchamiania, albo obrazów w plikach XIB, które mają powiązane klasy, z których żadne nie wydaje się tutaj istotne.