2015-01-20 2 views
4

Я нахожу, что когда вы устанавливаете backgroundColor вида в xib, отображаемый цвет явно отличается от того, когда вы программным образом устанавливаете backgroundColor.hex цвета в iOS не являются точными

Вот пример.

У меня есть два вида в этой простой демонстрации. Я установил backgroundColor верхнего вида в xib, например: enter image description here

Значение шестнадцатеричного цвета 0x1BA9BA. Затем я устанавливаю backgroundColor нижнего вида программным образом с тем же шестнадцатеричным значением цвета. Я использую следующий код:

NSInteger hexValue = 0x1ba9ba; 
self.testView.backgroundColor = [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16))/255.0 
                green:((float)((hexValue & 0xFF00) >> 8))/255.0 
                blue:((float)(hexValue & 0xFF))/255.0 
                alpha:1.0]; 

Результат выглядит следующим образом:

enter image description here

Как вы можете видеть, что есть четкая разница в цвете. Что мне здесь не хватает?

+1

Возможно, вы можете изменить настройки ползунка RGB на sRGB или RGB устройства. – gabbler

+0

@gabbler Это было sRGB. Я также пробовал устройство RGB, результат тот же. – Hampotato

+0

Пожалуйста, используйте общее цветовое пространство RGB, сначала измените пространство, а затем измените значение rgb, затем верхний вид будет выглядеть как вид снизу. – gabbler

ответ

8

Я применил ползунки RGB к первому виду и вашему коду ко второму виду, и цвета абсолютно идентичны (на мой взгляд) в симуляторе; это снимок экрана с имитатором:

enter image description here

Однако, я вошел в эти цифры в палитре цветов (27, 169, 186), когда цветовое пространство выбора цвета был установлен в Generic RGB. Если я переключусь на sRGB и , тогда введите эти цифры, я могу воспроизвести вашу проблему. Так что это проблема цветового пространства в конце концов; просто начните с цветового пространства, установленного в Generic RGB, и теперь числа будут совпадать.

+0

Возможно, у вас проблемы с управлением цветом на вашем компьютере? На моей машине изменение цветового пространства в наборе цветов изменяет значения ползунка, но не то, как цвет выглядит в симуляторе. – matt

+0

Изменение цветового пространства не изменило цвет симулятора на моей машине. Но определенно что-то не так с выбором цвета, так как когда я открыл xib в качестве исходного кода, он говорит: , которые не являются правильными числами. – Hampotato

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