簡體   English   中英

如何在iOS13之前訪問UIImage深色外觀

[英]How can I access UIImage dark appearance pre iOS13

我剛剛在我的應用程序中添加了暗模式。

資產目錄支持每個資產的多種外觀,在 iOS 13 上,這意味着當系統在黑暗或光明模式下運行時使用正確的資產。

xcode 圖像資產目錄外觀 這些不是我的真實資產

我正在嘗試在較舊的 iOS 版本上支持暗模式。 在我嘗試這樣做時,我添加了一個強制暗模式的覆蓋,該模式適用於我的自定義顏色和主題,但不適用於圖像。

是否可以在 iOS13 之前以編程方式訪問圖像的dark外觀?

對於 iOS12,我嘗試使用以下內容:

if #available(iOS 12.0, *) {
    let traits = UITraitCollection(userInterfaceStyle: .dark)
    let image = UIImage(
        named: "Image", 
        in: bundle, 
        compatibleWith: traits
    )
}

這只會返回正常的外觀,並且方法命名似乎表明這只會檢查我傳遞的特征集合是否與圖像兼容。

據我所知,僅使用一項資產是無法做到這一點的。 在 iOS 13 以下,系統將始終采用Any外觀。 您需要創建兩個具有不同名稱的不同圖像集,然后選擇其中一個。

這有點令人困惑,因為UIUserInterfaceStyle在 iOS 12+ 中可用,但這很可能是因為 macOS 在當年獲得了暗模式。

暫無
暫無

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

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