3
사용자가 그리는 데 사용할 색상을 선택할 수있는 버튼이있는 iOS 그리기 앱이 있습니다. 내 브러쉬는 RGB 값을 사용하지만 색 상수는 UIColors이므로 변환해야합니다. 시도했습니다UIColor의 RGB 값에 어떻게 액세스합니까?
private var currentButton: UIButton? {
willSet{
currentButton?.layer.borderWidth = 0
}
didSet{
currentButton?.layer.borderWidth = 2
let index = (currentButton?.tag)! - 1
drawView.brush.blue = colors[index].ciColor.blue //Here is where I get the error
drawView.brush.green = colors[index].ciColor.green
drawView.brush.red = colors[index].ciColor.red
}
}
다른 StackOverflow 질문에서 발견했습니다. 내가 라인 8의 RGB 값을 얻을 때 그러나, 나는이 오류가 :
Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '*** -CIColor not defined for the UIColor UIExtendedSRGBColorSpace 1 1 1 1; need to first convert colorspace.'
그것은 분명 내가 색 공간을 변환 할 필요가 있다고 말한다. 그러나 CIColor.colorSpace
은 get-only입니다. 내가 도대체 뭘 잘못하고있는 겁니까?
'var에 ciColor : CIColor는 설명 \t 수신기와 관련된 코어 이미지 색상 {얻을}. Color 객체가 Core Image 색상으로 초기화되지 않은 경우이 속성이 예외를 발생시킵니다. ' –
CoreImage.CIColor 초기화기를 사용하여 UIColor CoreImage.CIColor (color : colors [index])에서 새 색상을 만들 수 있습니다. '옵션으로 돌아 가지 않는다는 이점이 있습니다. –