Olası Çoğalt: bir cihaz objektif C kodundan bir retina ekran ya da değil olup olmadığını bilmek nasıl
Detect Retina Displaybilerek cihaz türü - Retina/olmayan Retina
?
Olası Çoğalt: bir cihaz objektif C kodundan bir retina ekran ya da değil olup olmadığını bilmek nasıl
Detect Retina Displaybilerek cihaz türü - Retina/olmayan Retina
?
scale
özelliğini [UIScreen mainScreen]
numaralı telefondan, eğer 1.0 ise, retina üzerinde çalışıyorsanız kontrol edebilirsiniz. Ölçeği geçerli CoreGraphics Bağlamından da alabilirsiniz.
Ve kullanıcı iOS <4 –
Doğru'da çalıştırırsa uygulama çökecektir. Bu yüzden [[UIScreen mainScreen] toToSelector: @selector (scale)] yanıtı doğruysa ilk önce kontrol etmek istersiniz. Bu geriye dönük uyumluluğu sağlamak için nasıl kodlayacağınıza dair genel bir kavramdır. – GorillaPatch
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
&& [[UIScreen mainScreen] scale] >= 2.0) {
// Retina
} else {
// Not Retina
}
Bu muhtemelen muhtemelen = = 2,0 olmalı (iPhone 6/6 +) – shabbirv
Bunu doğrudan belirleyebileceğinizi düşünmüyorum. Bunu, sysctlbyname'den geri alabileceğiniz model bilgisinden çıkarmak zorunda kalacaksınız (iOS kullanıcı sayfalarına bakın). Örneğin:
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
geri sana bir retina ekrana sahip "iPhone3,1" ya çıkmadığını "iPhone 2,1" gibi bir dize verecektir.
Bu çok kötü bir fikir. Bu, geleceğe yönelik bir kanıt değil, ve aynı zamanda bir Retina'ya sahip olan dördüncü nesil iPod touch'ı bile hesaba katmıyor Görüntüle. Diğer cevaplarda anlatıldığı gibi 'UIScreen' sınıfı 'scale' özelliği bunu yapmak için doğru yoldur. –
İyi nokta. Ben düzeltilmeyi bekliyorum. – onnoweb
Neden buna ihtiyacınız var? –
[Retina Ekranını Algıla] ile aynı (http://stackoverflow.com/questions/3504173/detect-retina-display) –
Saat diliminin Retina ekranıyla ne ilgisi var? – occulus