Как сделать приложение для iPhone на основе темы? - PullRequest
0 голосов
/ 05 ноября 2011

Я хочу реализовать свойство темы в своем проекте приложения в iPhone.У меня около 5-6 цветов фона на первом уровне и еще один фон на втором уровне и 3 изображения, которые я хочу изменить при смене темы.

Я хочу контролировать все цвета из одного центрального места.

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

Заранее спасибо

1 Ответ

0 голосов
/ 05 ноября 2011

Я бы создал класс (предпочтительно singleton), который обрабатывает это.

@interface Themes {
    int    theme;   //or you can create a enum
}

-(UIColor *)colorForBackground;        //or any other component
-(UIImage *)backgroundImageForButton;  //..
-(NSString *)xibNameForController:(NSString *)controller;   //or you can add a enum/define for controllers

@property() int theme;   // used to change or get the current theme; You can also send a NSNotification when the theme is changed, so that the content is refreshed
@end

@implementation Themes
@synthesize theme;

-(UIColor *)colorForBackground{
    if(theme==0){
        return [UIColor whiteColor];
    }
    if(theme==1){
        return [UIColor blueColor];
    }
    //etc.
}
-(NSString *)xibNameForController:(NSString *)controller{
    if([controller isEqualToString:@"MailController"]){
        if(theme==0)
            return @"MainControllerTheme0";
        //...
    }
    //...
}
//..
@end
...