2015-02-08 60 views
0

我對Xcode中的視網膜圖像如何工作有點困惑。我知道,如果我使用圖像資源,我可以分別爲視網膜和iPhone6 +指定2 *和3 *圖像,並且我只是引用圖像,剩下的就是Xcode。如果我使用的是不是來自資產的圖像,那麼呢?舉個例子,我在服務器上存儲用戶個人資料圖片的圖片,如果我有一個70 * 70pt的個人資料圖片,我可以將圖片設置爲一個140 * 140px的圖片用於視網膜顯示?對於6+我會做同樣的事情嗎?設置一個210 * 210一個?正確顯示不是來自圖像資源的視網膜圖形

回答

4

只包括像

  1. profile.png(70×70)正常
  2. [email protected](140 X 140),視網膜
  3. [email protected]項目中的圖片( 210 X 210)適用於iphone 6+設備

並在您的項目中正常使用它。

UIImageView *imageView = [UIImageView imageNamed:@"profile.png"]; 

這與資產具有相同的效果。

+0

如果我使用在界面生成器中製作的UIImageView,那麼該怎麼辦?我會保持這個尺寸爲70 * 70? – Kex 2015-02-08 14:02:25

+1

@Kex您的UIImageView在界面構建器中不是以像素爲單位進行測量的。這是衡量點。因此,iPhone 6上的70pt x 70pt UIImageView實際上是由於視網膜顯示而產生的140x140像素,而在iPhone 6 Plus上則爲210x 210像素。在這個答案中提到的命名約定是處理不同設備不同分辨率的最簡單方法。 – 2015-02-08 14:11:07

+1

我的意思是在我的界面生成器中,我想要一個70 * 70pt的圖像視圖,所以爲了正確地爲所有分辨率工作,我使用上述命名約定包含所有圖像,並將其保留爲70 * 70,並使用UIImageView * imageView = [UIImageView imageNamed:@「profile.png」];那對嗎? – Kex 2015-02-08 14:13:11

0

根據我個人的經驗,當您將圖像上傳到服務器時,它會保存原樣。 例如:70 * 70像素圖像將被保存爲70 * 70像素。

現在,你有2個選項。

  1. 當你使用它下載爲70 * 70只和它是圖像顯示在您的UIImageView應用程序獲取該圖像。然後,我建議你保持你的UIImageView大小爲35 * 35,以保持圖像清晰。

  2. 上傳210 * 210像素圖片,然後使用該應用程序下載圖像,然後再創建2個副本。一個70 * 70,另一個140 * 140。

我建議要設立一箇中間的方法(140 * 140像素的圖片,並在70 * 70像素的UIImageView顯示出來)如果你能與圖像質量妥協了一下。

0

這就是我所做的;

•讓您的UIImageView處於@ 1x大小(即70x70)。

•下載您需要正確的分辨率資產(70x70爲@ 1X,140x140 @爲2倍等)

•使用- (instancetype)initWithData:(NSData *)data scale:(CGFloat)scale或類似的方法,通過在正確的規模UIImage的。

相關問題