簡體   English   中英

xcode-資產目錄-圖像類型-相同比例-不同分辨率

[英]xcode - asset catalog - image type - same scale - different resolutions

我有一個iOS應用程序,該應用程序是幾年前開發的,並且使用images.xcassets目錄設置了許多控件的背景。 使用contents.json設置圖像,其中目標是使用“ idiom”鍵的iPhone,iPad。 其他規范包括“比例”和“文件名”。 似乎該應用在iOS 8之前運行良好。

截止到今天,有許多iPhone,iPad的高屏幕分辨率設備。 因此,我需要添加更多針對這些高屏幕分辨率設備的圖像。

我不知道它的早期處理方式,但是現在在相同的比例系數下有不同的屏幕分辨率。 例如,iPad Pro 12.9“和iPad Pro 11”的比例因子為“ 2x”,但分辨率分別為“ 2048x2732”和“ 1668x2388”。 現在,如果我創建的圖像的最高分辨率為2048x2732,則該圖像的中心位置不是1668x2388。

  1. content.json中是否有任何特定鍵可以區分相同比例因子的屏幕分辨率/尺寸?
  2. 當我搜索Apple的資產目錄文檔時,可以在此文檔檔案中找到它。 這是否意味着我們不應再將資產目錄用於圖像? 設置背景圖像是否有最新標准?

您可以遵循兩個選項來設置不同設備的背景圖像。

1-)將UIImageView內容模式設置為.aspectFill 通過設置此屬性,將為您的圖像裁剪不同的長寬比,但原始長寬比將受到保護。 如果您將重復圖像用作背景,則建議使用此選項。

2-)設置兩個不同的資產文件以實現不同的寬高比和分辨率。 如果遵循此選項,則在代碼中,您需要檢查設備並設置正確的圖像資產。

let image: UIImage!
if UIDevice().userInterfaceIdiom == .phone {
switch UIScreen.main.nativeBounds.height {
    case 1920, 2208:
        print("iPhone 6+/6S+/7+/8+")
        image = UIImage(named:"StandartBackground.png")
    case 2436:
        print("iPhone X, XS")
        image = UIImage(named:"XBackground.png")
    case 2688:
        print("iPhone XS Max")
        image = UIImage(named:"XSBackground.png")
    }
}

建議:常見且正確的方法是第一選擇,但在某些情況下將不適合它。 因此,嘗試避免第二種選擇,但是如果沒有其他選擇。 將每個不同的寬高比放置到不同的資產文件中。

暫無
暫無

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

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