項目中的flipImage.png和[email protected] 均爲。在 - [FlipsideViewController viewDidLoad]我有以下代碼。健康檢查(感謝其他stackoverflowers)正確報告視網膜或否。但無論哪種情況,加載的圖片都是小圖片,通過它的高度進行驗證。爲什麼不自動加載適當的圖像?好的,我可以看到解決方法,但我希望儘可能使用系統。iOS 6.1 XCode 4.6 - imageNamed永不返回@ 2x版本
UIImage* flipimage = [UIImage imageNamed:@"flipImage.png"];
NSLog(@"Image height = %f", flipimage.size.height); // always 416, never 832 :(
// Sanity check.
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0)) {
NSLog(@"Retina");
} else {
NSLog(@"Non-retina");
}
謝謝,顯然檢查圖像的「大小」不*正確地告訴我哪個文件被加載。事實上,正確的事情已經完成。我需要研究更多的演變模型以及LOGICAL大小(像素)和DISPLAY大小(點數?)之間的區別。這一切都讓人想起縱橫比的鬥爭,我曾經在http://www.andrewduncan.ws/aspect的史詩般的咆哮中解決了這個問題。 furrfu! – 2013-04-29 23:51:23
@AndrewDuncan實際上,一旦圖像加載到「UIImage」中,無論如何檢查大小等,您都無法真正知道使用哪個文件實例化它。如果我的答案對您有幫助,請檢查它旁邊的複選標記,以便它將關閉這個問題。 – iwasrobbed 2013-04-30 00:33:43
如果你想知道物理點而不是邏輯點的大小,你可以詢問UIImage引用的CGImage。 UIImage只是CGImage的一個包裝。如果您提供的@ 2x圖像等於2,您也可以向UIImage詢問他的比例,通常在視網膜顯示器中顯示。 – Andrea 2013-04-30 06:07:12