2012-06-23 97 views
0

有人可以告訴我加載UIImageView這兩種方法之間的區別嗎?UIImageViews不使用imageNamed方法加載UIScrollView

iconView.image = [UIImage imageNamed:anIconFileName]; 

iconView.image = [UIImage imageWithContentsOfFile:anIconFileName]; 

我跑進使用imageNamed方法我有不確定性的行爲加載的UIImageViews作爲一個UIScrollView子視圖時所處的環境。 UIImages會在模擬器中加載,但不會在使用may iMac的設備上加載。但是當我轉移到我的Mac Air時,模擬器和設備中的所有功能都可以正常工作?經過進一步調查,我發現它在工作時是不確定的。我試圖加載5個UIImageViews,有時我會得到1個或2個。任何加載都似乎取決於我嘗試加載的* .png文件的大小。

當我用imageWithContentsOfFile方法更改時,所有工作都按預期進行......可靠。

UIImages似乎不是很大 - 大約每個100K。任何想法都會有幫助。

回答

0

第一件事 - 你檢查了圖像的名稱,因爲模擬器加載不區分大小寫的圖像,而設備將不會加載該圖像。

imageNamed - 此方法取文件名。 imageWithContentsOfFile - 此方法採用該文件名的完整文件路徑。

因此上面提到的代碼是虛擬代碼或實際代碼,如果這是實際代碼,那麼您需要確保使用imageNamed必須通過文件名並使用imageWithContentsOfFile必須通過文件路徑。

看看這篇文章,這兩個方法之間的區別 - http://www.jorambarrez.be/blog/2012/04/19/ios-imagenamed-vs-imagewithcontentsoffile/

+0

謝謝。我確認我有正確的文件名。 –

0

這是無關的UIScrollView的只是檢查你導入的圖像的Xcode的方式。您應該添加文件選擇選項:

爲任何添加的文件夾創建組。

這樣文件夾將顯示爲黃色(而不是藍色)和imageNamed將正常工作。

+0

謝謝!我刪除了文件並重新添加了它們(我通常使用「爲所有添加的文件夾創建組」),並且它與imageNamed一起使用。打敗我如何這是不同的,爲什麼它以前在我的空氣,但沒有在我的iMac - 但感謝您的建議。基於前一篇文章中引用的文章,我將介紹並可能堅持使用imageWithContents。 –

相關問題