У меня есть приложение для рисования iOS с кнопками, которые позволяют пользователю выбирать цвета для рисования. Поскольку моя кисть использует значения RGB, но мои цветовые константы - UIColors, мне нужно преобразовать. Я попробовалКак получить доступ к значениям RGB для UIColor?
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. Однако, когда я пытаюсь получить значение RGB в строке 8, я получаю эту ошибку:
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
is get-only. Что я делаю не так?
'вар ciColor: CIColor {} получить Описание \t Ядро цвет изображения, связанный с приемником. Это свойство выдает исключение, если цветовой объект не был инициализирован цветом основного изображения. ' –
Вы можете использовать инициализатор CoreImage.CIColor для создания нового цвета из вашего UIColor' CoreImage.CIColor (color: colors [index]). Blue 'с тем преимуществом, что он не возвращает необязательный. –