2011-12-06 48 views
2

我在標籤欄中使用的圖像是動態的,我從互聯網上加載它們。我檢測到我是否在視網膜顯示器上,並下載正確的圖像並使用它們初始化標籤欄。將視網膜圖像加載到標籤欄動態

正常圖像工作正常。我的問題是視網膜圖像。它們以大尺寸顯示,比標籤欄大,所以它們沒有完全顯示。

我不知道我應該如何加載視網膜圖像到標籤欄,並使其看起來很正常。

更新:

下面是我用從添加的每個視圖控制器加載圖像的TabBar代碼:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString* path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithString:@"1.png"]]; 
    UIImage* image = [UIImage imageWithContentsOfFile:path]; 

如果圖像有沒關係@ 2倍或不是因爲我手動選擇正常或視網膜圖像。

+0

您目前如何加載並分配圖像到標籤欄的形象呢? – Till

+0

檢查你的圖像的DPI是好的 – Denis

+0

你的視網膜圖像的命名與普通圖像相同,但末尾帶有@ 2x後綴? – Mutix

回答

2

我自己沒有遇到過這個問題,但是我會在創建圖像後立即設置一個斷點。使用調試器檢查新圖像的scale屬性。我想你會發現scale設置爲1.0,但是你的高分辨率圖像應該有scale設置爲2.0。有三種方式(我知道)可以實現這一點:

  • 用「@ 2x」後綴命名文件;
  • 適當地爲圖片設置'dpi'屬性;
  • 創建-initWithCGImage:scale:orientation:+imageWithCGImage:scale:orientation:
+1

我用+ imageWithCGImage,它的工作完美。非常感謝。 –