Spojrzałem na kilka artykułów i dyskusji, takich jak tutaj i tutaj, o rozdzielczościach obrazów, w których nowe iPhone'y będą używać obrazów @ 3x do wyświetlania. Czy to prawda?
Czy to oznacza, że będziemy musieli zachować trzy obrazy? Powiedzmy na przykład, że mam obraz 50 x 50, czy będę musiał zachować 3 obrazy, aby zoptymalizować wygląd nowych iPhone'ów?
- Normalny (50 x 50)
- @ 2x - siatkówka (100 x 100)
- @ 3x - Retina HD (150 x 150)
A może nowe telefony będą używać tylko obrazów @ 2x i nie ma nic takiego jak @ 3x?
Przetestowałem, wykonując przykładowy projekt i wszystkie symulatory wydają się używać obrazów @ 3x, jest to mylące.
Edytować
Oto więcej informacji
- 3GS (163 ppi, więc użyj Normalny)
- 4, 4s, 5 i 5s (326 ppi, więc używamy @ 2x)
- 6 (326 ppi, więc wygląda na to, że będzie używać @ 2x)
- 6 plus (401 ppi tutaj leży zamieszanie)
Edytować
Na podstawie odpowiedzi udzielonych przez Tsob i nitin, dodałem obrazy @ 3x do mojego projektu.
Edycja informacyjna
Widzę, że niewielu użytkowników jest zdezorientowanych, dlaczego iPhone 6 używa obrazów @ 2x, mimo że ma wyższą rozdzielczość, powodem jest
iPhone 6 może mieć inną rozdzielczość, ale ma taką samą gęstość na cal piksela (PPI)
- Rozdzielczość dotyczy bezwzględnej liczby pikseli.
- Gęstość (czyli piksele na cal - PPI) dotyczy względnej liczby pikseli na cal, która jest taka sama w przypadku iPhone'a 6 i poprzednich iPhone'ów, ale inna w przypadku iPhone'a 6 plus.
Sprawdź więcej na ten temat w tym wątku
W związku z tym iPhone 6 używa obrazu @ 2x tak samo jak iPhone'y 4, 5 i 5S, ponieważ ma ten sam PPI, a iPhone 6 plus używa @ 3x.
źródło
Odpowiedzi:
Próbowałem w przykładowym projekcie użyć obrazów standardowych, @ 2x i @ 3x, a symulator iPhone'a 6+ używa obrazu @ 3x. Wydawałoby się więc, że do zrobienia są zdjęcia @ 3x (jeśli symulator faktycznie powiela zachowanie urządzenia). Ale dziwne jest to, że wszystkie urządzenia (symulatory) wydają się używać tego obrazu @ 3x, gdy znajduje się on w strukturze projektu, także iPhone 4S / iPhone 5.
Brak komunikacji ze strony Apple w sprawie potencjalnej struktury @ 3x, podczas gdy proszą programistów o opublikowanie ich aplikacji na iOS8, jest dość mylący, zwłaszcza gdy widzą te wyniki na symulatorze.
** Edycja w witrynie Apple **: to również znalazłem w sekcji „Co nowego w iOS 8” w przestrzeni programistów Apple:
Wciąż nie rozumiem, dlaczego wszystkie urządzenia ładują @ 3x. Może dlatego, że używam zwykłych plików, a nie xcassets? Wkrótce spróbuję.
Edytuj po dalszych testach: Ok, wygląda na to, że iOS8 ma o tym rozmowę. Podczas testowania na symulatorze iPhone'a 5 iOS 7.1 używa on poprawnie obrazu @ 2x. Ale uruchamiając to samo na iOS 8, używa @ 3x na iPhonie 5. Nie jestem pewien, czy jest to pożądane zachowanie, czy błąd / błąd w iOS8 GM lub symulatorach w Xcode 6.
źródło
AKTUALIZACJA:
Nowy link do rozmiaru obrazu ikon według Apple.
https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/
Tak, to prawda, Apple dostarcza oficjalną dokumentację dotyczącą rozmiaru ikony lub obrazu
musisz ustawić obrazy dla iPhone6 i iPhone6 +
W przypadku iPhone'a 6:
Dla iPhone 6 Plus:
Aby uzyskać więcej informacji na temat obrazów i ich rozdzielczości, ten post jest najlepiej pomocny
Aby ustawić rozmiar obrazów dla elementów sterujących, możesz ustawić 1x @ 2x i @ 3x w następujący sposób:
źródło
Utwórz różne wersje obrazu w katalogu zasobów, tak aby sam obraz wskazywał, jaka to wersja:
Teraz uruchom aplikację po kolei na każdym symulatorze. Zobaczysz, że obraz 3x jest używany tylko w telefonie iPhone 6 Plus.
To samo dotyczy sytuacji, gdy obrazy są rysowane z pakietu aplikacji przy użyciu ich nazw (np. One.png , [email protected] i [email protected] ) przez wywołanie
imageNamed:
i przypisanie do widoku obrazu.(Istnieje jednak różnica, jeśli przypiszesz obraz do widoku obrazu w Interface Builder - wersja 2x jest ignorowana na urządzeniach o podwójnej rozdzielczości. Jest to prawdopodobnie błąd, najwyraźniej błąd w programie
pathForResource:ofType:
).źródło
ios zawsze będzie próbował zrobić najlepszy obraz, ale wróci do innych opcji ... więc jeśli masz tylko normalne obrazy w aplikacji i potrzebuje @ 2x obrazów, użyje normalnych obrazów.
jeśli umieścisz tylko @ 2x w projekcie i otworzysz aplikację na normalnym urządzeniu, przeskaluje obrazy w dół do wyświetlenia.
Jeśli kierujesz reklamy na urządzenia ios7 i ios8 i chcesz uzyskać najlepszą jakość, potrzebujesz @ 2x i @ 3x dla telefonów i normalnych oraz @ 2x dla iPadów, ponieważ nie ma już telefonu innego niż Retina i nie ma @ 3x iPada.
może lepiej jest tworzyć zasoby w aplikacji z grafiki wektorowej ... sprawdź http://mattgemmell.com/using-pdf-images-in-ios-apps/
źródło