Разница в цвете между drawRect и Интерфейсным Разработчиком?

Просто у меня есть 2 вида в конструкторе интерфейсов, один из которых настроен на цвет 99,99,99 с помощью ползунков RGB в конструкторе интерфейсов.

enter image description here

Другой вид окрашен программно для достижения определенной формы. Я заполняю это, используя:

//Obviously, this is in drawRect.
[[UIColor leadColor] set];
CGContextEOFillPath(myContext);

//And this is a category on UIColor
+ (UIColor *)leadColor {
    return [UIColor colorWithWhite:99/255.0 alpha:1.0];
}

Результат:

enter image description here

Почему существует эта разница?

EDIT: (unecessary drawRect Code removed)

EDIT2:

Итак, вот я лгу самому себе ». Разработчик интерфейса показал RGB 99,99,99 как 80,80,80. Бьюсь об заклад, это смещает число на 19. & quot; & GT;. & GT; ... Отчаянный человек, использующий XCode, думает о таких безумных вещах, как это .. Результат:

Perfect!!

PERFECT!!, ноwhy???? Еще один баг Xcode? Я нашел около 10 из них в прошлом месяце ...

 A-Live28 мая 2012 г., 10:53
@Mazyod все равно не работает сCGContextFillRect(myContext, self.frame);, Пожалуйста, опубликуйте код, который вы используете.
 Mazyod28 мая 2012 г., 11:42
NOTE: У меня есть немногоvery интересная информация. Позвольте мне опубликовать их, прежде чем вы, ребята, попробуете что-то еще.
 Mazyod28 мая 2012 г., 10:34
Спасибо за тестирование. Просто замениCGContextEOFillPath(myContext); сCGContextFillRect, Проще, просто для проверки.
 Clafou28 мая 2012 г., 10:46
Ты пытался[UIColor colorWithRed:99/255.0 green:99/255.0 blue:99/255.0 alpha:1.0]?
 A-Live28 мая 2012 г., 06:45
Опубликовать полный DrawRect как две строки вместе сUIGraphicsGetCurrentContext не рисуют цвет над видом.

Ответы на вопрос(2)

colorWithWhite использованияпространство в градациях серогои цвет 99 в пространстве градаций серого не соответствует цвету (99,99,99) в пространстве RGB.

Таким образом, чтобы получить тот же результат, что и в Интерфейсном Разработчике, вам нужно использовать пространство RGB. Замените ваш вызов colorWithWhite следующим:

[UIColor colorWithRed:99/255.0 green:99/255.0 blue:99/255.0 alpha:1.0]
 21 февр. 2014 г., 14:40
Хотя вы правы в вопросе о пустом пространстве, это проблема цветового пространства.
 Mazyod28 мая 2012 г., 12:04
& lt; object class = & quot; NSColor & quot; ключ = & Quot; IBUIBackgroundColor & Quot; & GT; & lt; int key = "NSColorSpace" & gt; 2 & lt; / int & gt; & lt; bytes key = "NSRGB" MC40NjI3NDUwOTggMC40NjI3NDUwOTggMC40NjI3NDUwOTgAA & lt; / bytes & gt; & Lt; / объект & GT; .. Не имеет смысла для меня.
 28 мая 2012 г., 11:42
Weird! Если вы откроете .xib в текстовом редакторе и посмотрите на значение цвета, что вы увидите?
 Mazyod28 мая 2012 г., 11:36
То, что вы говорите, имеет смысл, однако, это не так. Скриншот, который я загрузил, имеет два разных серых цвета, нарисованныйdrawRect + leadColor = RGB 99,99,99. (то есть colorWithWhite - это то же самое, что и код, который вы предоставили. Тем не менее, я протестировал его, бесполезно). Тем не менее, цвет, установленный в IB, отображается как RGB 80,80,80.
Решение Вопроса

Я наконец достиг стадии тонкой настройки этого приложения, и мне пришлось решить эту проблему, поэтому я искал и легко нашел решение:

Как ввести значения RGB в Интерфейсный Разработчик?

Illustration:

enter image description here

 01 июл. 2016 г., 15:12
Спасибо! Сработало для меня тоже!
 12 нояб. 2013 г., 18:00
Спасибо за это. Я бы не подумал сделать это в IB
 26 окт. 2014 г., 13:42
Благодарю. Работал на меня.
 21 февр. 2014 г., 14:41
У меня была такая же проблема и я проверил цвета с фейерверком Jejej

Ваш ответ на вопрос