У меня есть проект, который должен изменить общие цветовые темы в приложении. Многие элементы моего пользовательского интерфейса создаются через Interface Builder в Xcode 6.1. Мне нужно установить цвета в качестве переменных в построителе интерфейса, поэтому, если я установил препроцессор, предлагающий приложению использовать определенную схему, тогда цвета будут меняться в построителе интерфейса. Возможно ли это?Переменные для цветов в построителе интерфейса
ответ
Я не знаю, как это сделать с помощью конструктора интерфейса, однако есть способ, который вы можете установить в свойствах внешнего вида в коде для многих элементов интерфейса IOS, которые затем будут применяться во всем мире. В качестве примера можно привести следующий фрагмент кода:
UIToolbar.appearance().tintColor = UIColor.whiteColor()
UIToolbar.appearance().barTintColor = UIColor.blackColor()
UITableView.appearance().separatorColor = UIColor.grayColor()
UITableView.appearance().sectionIndexColor = UIColor.grayColor();
UINavigationBar.appearance().tintColor = UIColor.blueColor()
UINavigationBar.appearance().barTintColor = UIColor.blackColor()
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]
код устанавливает оттенок по умолчанию и бар цвета для всех UIToolbars, разделителей и указательным раздел цветов для всех UITableViews, и внешний вид свойств для всех представлений UINavigation в мое приложение.
Вы можете использовать #if
, чтобы установить внешний вид по-разному в зависимости от переменных окружения, заданных в компиляторе.
Если вы хотите узнать больше о том, как это работает, Id предлагаю читать Apples документацию по свойствам UIAppearance здесь: UIAppearance Documentation
Цветовые переменные являются удивительными, я хочу Xcode было это тоже.
Оказывается, вы можете добавить функцию цветовых переменных.
Этот плагин xcode, называемый Suggested Colors, позволит вам создавать и использовать палитру цветов в Interface Builder. Он использует файл plist
, поэтому я думаю, что вы можете прочитать это в коде и иметь цветовую палитру, разделяемую между кодом и IB таким образом. Выглядит многообещающе. К сожалению, похоже, что он не работает в xcode 6.3.2. Надеюсь, он будет исправлен.
Это не помогает вообще. Если кто-то задает конкретный вопрос вроде этого, они, скорее всего, знают о внешности ... Что делать, если у вас есть 2 типа ярлыков (заголовки и тексты) и хотите изменить цвет всех заголовков? Тогда вы не можете просто изменить внешний вид ярлыка! – eyeballz