Цветовые ресурсы для iPhone? - PullRequest
       4

Цветовые ресурсы для iPhone?

0 голосов
/ 08 февраля 2011


Я новичок в разработке для iPhone и ищу способ использования цветовых ресурсов (как в Android).Я хочу применить их к фону текста и панели и т. Д.

Конечная цель состоит в том, чтобы иметь возможность переключать цветовые ресурсы, сохраняя при этом код и файлы XIB без изменений.Таким образом, можно, например, создать несколько версий приложения с разными цветами текста, просто изменив значение rgb в одном месте.

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

Ценю любую помощь

Ответы [ 3 ]

1 голос
/ 08 февраля 2011

Класс UIColor просто потрясающий.

Имеет много приятных, желательных цветов, доступных из коробки.Например:

[UIColor clearColor];
[UIColor redColor];
[UIColor greenColor];
[UIColor blueColor];

[UIColor lightTextColor];
[UIColor groupTableViewBackgroundColor];

Кроме того, вы можете генерировать все изящные вещи с небольшой математикой и некоторыми макросами.Этот позволяет генерировать цвета из 8-битных шестнадцатеричных значений (т. Е. 0x000000 для черного).

#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]

Вы также можете загрузить объект UIColor из изображения.

[UIColor colorWithPatternImage:[UIImage imageNamed:@"myImage.png]];

Чтобы использовать любой объект UIColor, вы можете просто сделать это:

UITextField.textColor = [UIColor magentaColor];

Просто обратите внимание, что назначаемое вами свойство должно быть свойством UIColor (очевидно).

Изменить: Для того, что вы хотите сделать, это может быть лучшим решением:

  1. Создайте новый файл кода.Назовите это как VJColorConstants.
  2. Сделайте это для каждого цвета, который вы хотите использовать:
+(UIColor *)prettyColor{
    return UIColorFromRGB(0x4A6B82);
}

Существует около 100 спинов, как вернуть константу, но якак этот.После того, как вы настроили этот файл, вы можете сделать это:

UIView.backgroundColor = [VJColorConstants prettyColor];
0 голосов
/ 08 февраля 2011

Единственный способ, о котором я мог подумать, это использовать макросы препроцессора #define. Но тогда вы должны установить все свои цвета в коде. Вы должны соединить все свои представления с IBOutlets и т. Д.

#if VERSION_PINK
#define kBackGroundColor [UIColor colorWithRed:255/255.0f green:105/255.0f blue:180/255.0f alpha:1]
#elif VERSION_GREEN
#define kBackGroundColor [UIColor colorWithRed:155/255.0f green:255/255.0f blue:155/255.0f alpha:1]
#else
#define kBackGroundColor [UIColor colorWithRed:150/255.0f green:150/255.0f blue:150/255.0f alpha:1]
#endif

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backGroundColor = kBackGroundColor;
}

Затем вы должны установить VERSION_PINK = 1, VERSION_GREEN = 1 и так далее в макросах препроцессора в настройках сборки вашего приложения.

0 голосов
/ 08 февраля 2011

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

#define CUSTOM_COLOR [UIColor colorWithRed:0.0 green:0.5607 blue:0.8627 alpha:0.50]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...