Ответ 1
Это связано с тем, что значения CGFloat
варьируются от 0.0 to 1.0
не от 0 to 255
, а значения выше 1.0
интерпретируются как 1.0
.
Вот документация: UIColor
Я пытаюсь изменить цвет панели навигации. Следующий rgb предназначен для темно-красного цвета, но мой навигационный бар становится белым после следующего кода.
navigationController.navigationBar.tintColor = [UIColor colorWithRed:117 green:4 blue:32 alpha:1];
Это связано с тем, что значения CGFloat
варьируются от 0.0 to 1.0
не от 0 to 255
, а значения выше 1.0
интерпретируются как 1.0
.
Вот документация: UIColor
Просто сделайте следующее:
navigationController.navigationBar.tintColor = [UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1];
Вы должны разделить каждое значение на 255. Попробуйте:
[UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1]
Я нахожу, что если вы приходите из Интернета или с чего-то вроде Photoshop, проще работать с шестнадцатеричными цветами. Вы можете использовать этот макрос для этого:
//RGB color macro
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
И используйте его следующим образом:
self.navigationBar.tintColor = UIColorFromRGB(0xd8dadf);
А, это смешно. Реальный ответ заключается в том, что .tintColor устанавливает цвет элементов навигации навигационного контроллера (например, кнопка "Готово" ).