2009-03-12 2 views
2

Мне интересно, можно ли изменить цвет кнопок по умолчанию в моем приложении с помощью пары строк кода? Может быть очень скучно вручную менять цвет каждой кнопки. Особенно, если у вас их много.Изменение цвета всех элементов интерфейса того же типа

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

Заранее спасибо, Ilya.

ответ

3

Боюсь, что глобальных установок нет.

Можно перебирать все виды и объекты объекта, запрашивать их тип, а затем применять специальные цвета по мере необходимости. Это позволяет вам иметь одно место в приложении, на которое вы передаете свои представления, и все применяется.

Нечто подобное;

//! Applies application specific styles to UIKit objects 
void applyStyles(UIView* view) 
{ 
    for(UIView* subview in view.subviews) 
    { 
    // test type of view 
    if([[subview class] isEqualToString:@"UIButton"] == YES) 
    { 
     // apply colors for buttons 
    } 
    else if([[subview class] isEqualToString:@"SomethingElse"] == YES) 
    { 
     // apply colors for something else 
    } 
    } 
} 
+0

Я думаю, что эти тесты должны быть '[subview isKindOfClass: [UIButton class]]' – benzado

1

Я бы рекомендовал создать подкласс UIButton (MyCustomButton) и применяя любые стилистические элементы, которые вы хотите в конструкторе подкласса.

Переходя UIButtons к какой-то «StyleManager», как предложено выше, лучший подход, чем сказать

button.backgroundColor = [UIColor orangeColor]; 

, но вам все равно придется пройти через код и сказать что-то вроде

[StyleManager applyStyles:viewThatContainsButton]; 

Этот распространяет решение применения стилей, вероятно, на каждый контроллер и некоторые элементы View в вашей базе кода. Создание подкласса позволяет применять стиль с одной строкой кода, а не по одной строке для каждого представления.

Сбор решение проблемы в одном классе устраняет это решение разрастание и должно уменьшить обслуживания усилий, а также.