Retina ekranını tüm iOS cihazlarda güvenilir bir şekilde tespit etmek için, cihazın iOS4 + çalıştırıp çalıştırmadığını ve [UIScreen mainScreen].scale
mülkün 2.0'a eşit olup olmadığını kontrol etmeniz gerekir . Bir cihazın iOS4 + çalıştığını varsayamazsınız.scale
3.2 de bu özelliği içerdiğinden özellik varsa .
İOS3.2 çalıştıran bir iPad'de, ölçek 1x modunda 1.0 ve 2x modunda 2.0 döndürür - cihazda Retina ekran bulunmadığını bilsek bile. Apple, iPad için iOS4.2'de bu davranışı değiştirdi: hem 1x hem de 2x modlarında 1.0 döndürüyor. Bunu simülatörde kendiniz test edebilirsiniz.
-displayLinkWithTarget:selector:
Ana ekranda iOS4.x'te bulunan ancak iOS3.2'de olmayan yöntemi test ediyorum ve ardından ekranın ölçeğini kontrol ediyorum:
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0)) {
// Retina display
} else {
// non-Retina display
}