Jak naprawić problemy z interfejsem iPhone'a w trybie powiększenia z powodu ekranu uruchamiania

Nov 29 2022
Tło Tydzień temu zidentyfikowaliśmy dziwny problem polegający na tym, że nasza aplikacja Naukri iOS zachowywała się nieoczekiwanie w trybie powiększenia na niektórych urządzeniach. Interfejs użytkownika był zniekształcony i losowo zaciemniał się wokół górnego paska nawigacyjnego i dolnego paska kart.
Zdjęcie Agence Olloweb na Unsplash

Tło

Tydzień temu wykryliśmy dziwny problem polegający na tym, że nasza aplikacja Naukri iOS zachowywała się nieoczekiwanie w trybie powiększenia na niektórych urządzeniach.

Interfejs użytkownika był zniekształcony i losowo zaciemniał się wokół górnego paska nawigacyjnego i dolnego paska kart.

Problem

Po przejrzeniu kilku rozwiązań i artykułów dotyczących stanu powiększenia zauważyliśmy, że po włączeniu stanu powiększenia aplikacja zaczyna być wyświetlana w trybie skalowanym, a ponieważ nasz ekran uruchamiania nie był zoptymalizowany pod kątem większych ekranów, pojawiały się problemy z interfejsem użytkownika.

Co to jest ekran uruchamiania?

Pojawia się, gdy aplikacja jest uruchamiana po raz pierwszy i sprawia wrażenie, że aplikacja jest szybka i responsywna. Po załadowaniu aplikacji zostanie on zastąpiony pierwszym ekranem aplikacji.

Kiedy sprawdziliśmy logikę implementacji obrazu uruchamiania w naszym projekcie, dowiedzieliśmy się, że różne rozmiary obrazów uruchamiania zostały dodane do naszego pliku xcassets.

Myśleliśmy o ich usunięciu i dodaniu różnych obrazów tylko po to, by wypróbować kilka rzeczy, a potem zauważyliśmy, że dodawanie ekranu uruchamiania z xcassets zostało wycofane.

Rozwiązanie

Po zapoznaniu się z dokumentacją Apple nauczyliśmy się prawidłowych sposobów dodawania ekranu uruchamiania w aplikacji na iOS.

https://developer.apple.com/documentation/xcode/specifying-your-apps-launch-screen/

Jak dodać ekran uruchamiania?

Przed Xcode 6 jedyną opcją, jaką mieliśmy, było dostarczanie statycznych obrazów w katalogu zasobów. Później, wraz z iOS 8, Xcode umożliwił nam zastąpienie statycznego obrazu plikiem scenorysu. Z czasem i nowymi aktualizacjami kilka opcji i funkcji było dodawanych do ekranu startowego.

W przypadku Xcode 12 i nowszych istnieją dwa sposoby na uzyskanie ekranu uruchamiania:

  1. Korzystanie ze scenorysu (domyślnie), dodawanego podczas tworzenia nowego projektu
  2. Korzystanie z plistkonfiguracji

Za pomocą plistkonfiguracji możesz ustawić:

  • Obraz
  • Określa, czy obraz uruchamiania powinien uwzględniać wstawki bezpiecznego obszaru
  • Kolor tła
  • Widoczność paska nawigacji
  • Widoczność paska kart
  • Widoczność paska narzędzi
  • Uruchom konfigurację ekranu według schematu adresu URL
  1. W ustawieniach swojego celu wybierz zakładkę Informacje.
  2. W sekcji Niestandardowe właściwości docelowe systemu iOS rozwiń klawisz ekranu uruchamiania.
  3. Kliknij przycisk Dodaj (+), wpisz UILaunchScreeni naciśnij klawisz Return, aby dodać klawisz ekranu uruchamiania do listy właściwości. Jeśli UILaunchScreenklucz jest już obecny, możesz pominąć ten krok.
  4. Wybierz UILaunchScreenklucz, kliknij przycisk Dodaj (+) i dodaj dodatkowe klucze, aby określić opcje konfiguracji ekranu startowego.

Korzystanie z pliku scenorysu

Jeśli tworzysz swoją aplikację na iOS z szablonu serii ujęć, Xcode dodaje LaunchScreen.storyboarddo twojego projektu domyślny plik ekranu startowego o nazwie . Edytuj LaunchScreen.storyboard, aby skonfigurować ekran startowy.

Jeśli Twój projekt nie zawiera domyślnego pliku ekranu uruchamiania, dodaj plik ekranu uruchamiania i ustaw plik ekranu uruchamiania dla celu w edytorze projektu.

  1. Wybierz polecenie Plik > Nowy > Plik.
  2. W obszarze Interfejs użytkownika wybierz Ekran uruchamiania i kliknij Dalej.
  3. Nadaj nazwę plikowi ekranu uruchamiania, wybierz lokalizację, wybierz cel, do którego chcesz dodać plik, i kliknij Utwórz.
  4. W ustawieniach swojego celu wybierz kartę Ogólne i znajdź sekcję „Ikony aplikacji i obrazy uruchamiania”.
  5. Z wyskakującego menu Plik ekranu uruchamiania wybierz nowy plik ekranu uruchamiania.

Ekrany uruchamiania są mocno buforowane w systemie iOS, aby poprawić wydajność. Dlatego do celów programistycznych i testowych musisz usunąć aplikację i ponownie uruchomić urządzenie (lub symulator).

Możesz także dodać sleep(5) w didFinishLaunchingWithOptions podczas opracowywania ekranu uruchamiania, opóźnienie może być przydatne, aby przyjrzeć się dłużej zaimplementowanemu projektowi.

Dziękuję bardzo za przeczytanie…!

Bibliografia:

https://developer.apple.com/documentation/xcode/specifying-your-apps-launch-screen/