簡體   English   中英

無法將PNG圖像加載為UIImage

[英]Cannot load PNG image as UIImage

我正在嘗試將位於我的XCode項目中的.PNG圖像加載為UIImage - 但是采用文件名的UIImage的構造函數返回nil

請參閱我的設置屏幕截圖:

在此輸入圖像描述

以下是一些細節:

  • 該項目位於Swift
  • 我在全局變量中構建UIImage (懶惰)
  • 問題出現在模擬器和設備上(iPhone 5S)
  • 我使用不同的名稱多次添加相同的圖像,以確保不正確的命名不是原因(請參閱左紅色矩形中的所有名稱)
  • 所有圖像都被添加到EasyTypeShared目標,這是一個嵌入到可變形EasyType項目中的庫項目。
  • 我沒有做任何axtra步驟 - 只是將圖像文件添加到我的工作區(和EasyTypeShared目標)並運行應用程序

編輯:根據這篇博客 ,原因可能是工作區設置 - 更准確地說,框架正在加載圖像。 不確定,但缺乏更好的想法,我將遵循這條軌道。 如果你能對這件事有所了解,我會非常感謝任何想法。

問題是由於從資源加載圖像的代碼駐留在框架中。 主bundle不包含框架的資源,需要使用相應的bundle。 工作代碼:

private let imagePlaceholder = UIImage(named: "ImagePlaceholder.png", inBundle: NSBundle(forClass: CarretMoveController.self)

這些是images.xcassets的一部分嗎? 如果不是,則必須使用NSBundle讀取它們並獲取資源的路徑/ URL以及所有這些並且簡單的文件名是不夠的。

您可以根據此處的Apple文檔將文件添加到資源。 相關部分可能是“添加圖像集”之一。

如果您沒有images.xcassets,則可以根據此處給出的答案之一將其添加到項目中。

在您的項目資源管理器中,我可以看到圖像沒有正確命名。 它應該是這樣的:

imagePlaceHolder.png
imagePlaceHolder@2x.png

注意文件名末尾的png和文件擴展名前的@ 2x。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM