[英]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-)將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.