2012-07-04 79 views

回答

0

使用這種if/else語句塊

if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && 
    ([UIScreen mainScreen].scale == 2.0)) { 
    // Retina display 
} else { 
    // non-Retina display 
} 

您可以檢測到您是否是一個視網膜顯示器或標準顯示模式,然後加載正確的圖像。

+1

爲什麼不檢查選擇'scale'?像'[UIScreen mainScreen] respondsToSelector:@selector(規模)]' – uvesten

+0

我會檢查它:) – h4cky

+1

'scale'是一個屬性,而不是一個方法。這就是爲什麼。 –

1

從服務器加載圖像時。

首先你發送請求/連接到服務器到時候你就發imagesSize服務器

例子: - www.example.com/iPhone/abc.php?imagesSize = 1

在哪裏!對於@ 2X

0簡單(指非視網膜)

如果你使用這種方法則圖像沒有澱粉。

1

您可以存儲兩個版本的圖像,一個用於視網膜,另一個用於非視網膜。當設備即將從Web服務器下載圖像,(假設你使用web服務腳本),你可以有一個post數據,如:

NSString *postData; 
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && 
([UIScreen mainScreen].scale == 2.0)) { 
    postData = @"retina_device"; 
} else { 
    postData = @"non_retina_device"; 
} 

你就會知道該設備叫什麼版本的圖像,假設你會寫webservice的sript在PHP

<?php 
    $postData = $_REQUEST['postData']; 
    if($postData == @"retina_device"){ 
     //return all images for retina device 
    } 
?> 
相關問題