如何确定当前设备是否具有支持 P3 的显示屏?

How do I determine if current device does have a P3 capable display?

有没有办法有条件地 select 标准 RGB 颜色或 P3 颜色(如果设备支持)?

我为 iOS 版本考虑了类似以下内容:

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

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