Как определить, имеет ли текущее устройство дисплей с поддержкой P3? - PullRequest
3 голосов
/ 28 июня 2019

Есть ли способ условно выбрать стандартный цвет RGB или цвет P3, если устройство поддерживает его?

Я думал о чем-то вроде следующего для версий iOS:

if #available(iOS 12.0, *) {
    ...
} else {
    ...
}

1 Ответ

4 голосов
/ 28 июня 2019

UITraitCollection имеет свойство displayGamut, которое является enum UIDisplayGamut

@available(iOS 10.0, *)
public enum UIDisplayGamut : Int {
    case unspecified // UIKit will not set this anymore, instead a sensible default is chosen based on the device capabilities and settings always
    case SRGB
    case P3
}

Вы можете запросить «главный экран»

let hasP3Display = UIScreen.main.traitCollection.displayGamut == .P3 

или отображение определенного вида (который может отличаться, если используется внешний монитор)

let hasP3Display = view.traitCollection.displayGamut == .P3
...