2016-11-26 2 views
2

Я пытаюсь реализовать CIColor из RGB-шестигранным цветовом следующим образом:CIColor в UIColor -> CIColor не определено для UIColor UIExtendedSRGBColorSpace

let bottomColor = UIColor.init(red: 235/255, green: 250/255, blue: 255/255, alpha: 1.0).ciColor 

Однако я продолжаю ударять следующее сообщение об ошибке:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -CIColor not defined for the UIColor UIExtendedSRGBColorSpace 0.921569 0.980392 1 1; need to first convert colorspace.'

Я не уверен, что это значит. Как это исправить?

ответ

7

это будет работать:

let uiColor = UIColor.init(red: 235.0/255.0, green: 250.0/255.0, blue: 255.0/255.0, alpha: 1.0) 
let bottomColor = CIColor(color: uiColor) 

Вы можете также добавить расширение на UIColor:

extension UIColor { 
    var coreImageColor: CIColor { 
     return CIColor(color: self) 
    } 
    var components: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) { 
     let color = coreImageColor 
     return (color.red, color.green, color.blue, color.alpha) 
    } 
} 

А затем вызвать его с помощью:

let bottomColor = UIColor.init(red: 235.0/255.0, green: 250.0/255.0, blue: 255.0/255.0, alpha: 1.0).coreImageColor 

ответ и объяснение, для которых Я нашел in this related question.

Смежные вопросы