Jak programowo (Objective-C), czy iPad ma wyświetlacz Retina?Programowo wykryć, czy iPad ma wyświetlacz Retina?
Odpowiedz
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && [[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [UIScreen mainScreen].scale > 1)
{
// new iPad
}
Chociaż technicznie poprawne, najprawdopodobniej zwróci true także dla wszystkich przyszłych iPadów (które wciąż mogą być właśnie tym, czego potrzebujesz). –
To odpowiada na pytanie (wykryj ekran Retina). Ale jeśli naprawdę potrzebujesz znać wersję urządzenia, zobacz [tutaj] (http://stackoverflow.com/questions/9638970/ios-the-new-ipad-uidevicehardware-hw-machine-codename) dla odpowiedzi, która identyfikuje _all_ urządzenia . – bobobobo
działa to zarówno w systemie iOS 7, jak i iOS 8. Dziękujemy! – imcc
Podobnie jak inne plakaty, należy sprawdzić funkcje, a nie modele. Jednak w kilku niejasnych przypadkach, w których możesz chcieć zidentyfikować konkretny model, możesz użyć sysctrl hw.machine w następujący sposób. Zwróć uwagę, że jeśli nie możesz zidentyfikować modelu, najprawdopodobniej twój kod działa na nowym modelu, więc w takim przypadku powinieneś zrobić coś sensownego.
#include <sys/types.h>
#include <sys/sysctl.h>
// Determine the machine name, e.g. "iPhone1,1".
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0); // Get size of data to be returned.
char *name = malloc(size);
sysctlbyname("hw.machine", name, &size, NULL, 0);
NSString *machine = [NSString stringWithCString:name encoding:NSASCIIStringEncoding];
free(name);
Teraz możesz porównać "maszynę" ze znanymi wartościami. Na przykład w celu wykrycia modeli iPad (marzec 2012):
if ([machine hasPrefix:@"iPad3,"]) NSLog(@"iPad (March 2012) detected");
Testowałem już moją aplikację na emulatorze iPad (Retina) i zadziałało. Myślałem, że będę miał problem z powodu nowej rozdzielczości nowego iPada, ale całkowicie się myliłem. Dzięki temu to może być przydatne dla innych. – Freedom
- 1. Jak mogę wykryć, czy komputer Mac ma wyświetlacz Retina z Java?
- 2. CGContext i wyświetlacz Retina
- 3. Retina iPad Specific CSS
- 4. czy można testować wyświetlacz Retina na symulatorze?
- 5. Jak wykryć ekran Retina w MonoTouch
- 6. Wyświetlacz Retina Różnica kolorów wyświetlacza normalnego VS
- 7. Webapp na iPadzie 3 wyświetlacz retina powolne malowanie ekranu
- 8. iPad 3 Wyświetlacz Retina, @ 2x obrazy i aplikacje już w sklepie
- 9. Wyświetlacz Retina dla obrazu z adresu URL
- 10. Znając typ urządzenia - Retina/non-Retina
- 11. Czy można programowo wykryć szum biały?
- 12. Jaka jest różnica między symulatorem iPad Retina a symulatorem iPad Air w Xcode 6?
- 13. CSS reaguje design - wykryć wyświetlacz portret
- 14. Jak wykryć, czy wielokąt ma przekroje własne?
- 15. Jak wykryć, czy element ma wysokość "automatyczną"
- 16. Jak wykryć, czy edittext ma angielskie znaki?
- 17. Jak sprawdzić, czy iPad jest iPad Pro
- 18. Jak programowo włączyć "tryb kiosku" w ipad?
- 19. IPhone/iPad: Jak programowo uzyskać szerokość ekranu?
- 20. Programowo wykryć, czy JVM korzysta z dzielenia klas, czy nie?
- 21. Programowo określić, czy system ma przełączana grafika
- 22. Jak wykryć, czy plik ma BOM UTF-8 w Bash?
- 23. Jak wykryć, czy procesor ma dobrą obsługę POPCNT?
- 24. Jak wykryć, czy łańcuch ma nową linię podziału?
- 25. getUserMedia - jak wykryć, czy urządzenie rzeczywiście ma kamerę
- 26. jaki sposób wykryć, czy dataframe iskra ma kolumnę
- 27. Jak można wykryć, czy użytkownik ma klawiaturę przez JavaScript?
- 28. Poruszająca animacja i przewijanie Wydajność na "nowym iPadzie" (Retina iPad 3)
- 29. Jak wykryć, czy przeglądarka obsługuje zdarzenia mouseover?
- 30. Czy przeglądarka iPad obsługuje jQuery?
Korzystanie z jakiego języka? – BoltClock
Dlaczego? Generalnie powinieneś wykryć i dostosować _funkcje_ zamiast konkretnych urządzeń. –
@BoltClock-c. – Freedom