Để phát hiện màn hình Retina đáng tin cậy trên tất cả các thiết bị iOS, bạn cần kiểm tra xem thiết bị có chạy iOS4 + hay không và thuộc [UIScreen mainScreen].scale
tính có bằng 2.0 không. Bạn KHÔNG THỂ giả sử một thiết bị đang chạy iOS4 + nếu thuộc scale
tính tồn tại, vì iPad 3.2 cũng chứa thuộc tính này.
Trên iPad chạy iOS3.2, tỷ lệ sẽ trả về 1.0 ở chế độ 1x và 2.0 ở chế độ 2x - mặc dù chúng tôi biết rằng thiết bị không chứa màn hình Retina. Apple đã thay đổi hành vi này trong iOS4.2 cho iPad: nó trả về 1.0 ở cả hai chế độ 1x và 2x. Bạn có thể tự kiểm tra điều này trong trình giả lập.
Tôi kiểm tra -displayLinkWithTarget:selector:
phương thức trên màn hình chính tồn tại trong iOS4.x nhưng không phải iOS3.2, rồi kiểm tra tỷ lệ của màn hình:
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0)) {
// Retina display
} else {
// non-Retina display
}