簡體   English   中英

使用資產目錄特權從 URL 下載圖像

[英]Downloading an image from URL with Asset Catalog perks

我是 iOS 開發的新手,正在開發我的第一個嚴肅的應用程序(目標 C)。

我正在使用外部 API,並且已經到了需要從所述 API 下載圖像以保持離線狀態作為緩存的地步。

現在,如果我理解正確,我可以使用資產目錄將圖像添加到 XCode 上的應用程序中。 例如,如果我添加一個帶有 image@1X.png、image@2X.png 和 image@3X.png 版本的圖像,為了以后使用它們,我只需要向 iOS 提供“圖像”部分,它就會自動返回適合當前使用的設備的版本。

但是,我無法在運行時將圖像添加到資產目錄 - 我必須從圖像 URL 創建一個 NSData 並將其保存到 Documents 文件夾中。

問題是,這個 API 給了我一堆我需要下載的圖像的不同版本的 URL,其中包括圖像的 @2X、@3X 等版本,所以我需要下載所有版本並使用資產目錄為設備檢索適當的功能。

我怎樣才能做到這一點?

非常感謝您的幫助,如果我有什么不對的地方,請糾正我。

所以我需要下載所有版本並使用資產目錄功能為設備檢索適當的版本。

你不需要。 我們將 2x 和 3x 圖像添加到我們的資產目錄中,因為我們不知道我們的應用程序在什么設備上運行。 但是在您的情況下,您需要在運行時知道這一點,因此您已經知道設備是什么。

要獲得設備的比例因子,您可以執行以下操作:

UIScreen.mainScreen().scale

因此,對於 2x,這將返回 2,對於 3x,它將返回 3。

由此,您可以知道需要從 API 下載的正確圖像是什么,而不是全部下載,這會增加不必要的開銷。

您可以查看UIImageAsset上的文檔是否對您的要求有幫助

此外,正如您所說,您是 iOS 開發的新手,您還可以檢查文件系統文檔,這也有助於您更好地理解和管理文件文件系統基礎知識

編輯:正如 sateesh 和 patchdiaz 所提到的,只下載特定設備的單一分辨率圖像而不是下載設備的所有分辨率圖像將是更好的解決方案

暫無
暫無

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

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