类似于更换主题皮肤的工具类

</pre><pre name="code" class="objc"><pre name="code" class="objc"><img src="https://img-blog.csdn.net/20151117124503421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
</pre><pre name="code" class="objc">#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface NEOSkinTool : NSObject

+(void)saveSkinWithColor:(NSString *)color;

+(UIImage *)getImageWithName:(NSString *)imageName;

 + (UIColor *)getColorWithKey:(NSString *)key;

@end

 

//  NEOSkinTool.m

//  工具类更换如模式,主题

//

//  Created by apple on 15/11/16.

//  Copyright © 2015 dfdsaf. All rights reserved.

//


#import "NEOSkinTool.h"

static NSString *_skin;//类方法中不会出现全局对象就用一个全局变量代替


@implementation NEOSkinTool



+(void)load{

    

    NSLog(@"此方法已经执行");

    //_skin=[[NSUserDefaults standardUserDefaults] objectForKey:@"skin"];//此处出现了 bug

   if (_skin==nil) {

       _skin=@"blue";

    }

    

}



#pragma  mark 将控制器传回来的图片名称拼接图片的路径,返回图片

+(UIImage *)getImageWithName:(NSString *)imageName{

    

   

    NSString *path=[NSStringstringWithFormat:@"skin/%@/%@.png",_skin,imageName];

 

    return [UIImageimageNamed:path];

    

    

}


#pragma  mark 保存选择过的颜色

+(void)saveSkinWithColor:(NSString *)color{

    

   _skin=color;

    

    [[NSUserDefaultsstandardUserDefaults]setObject:@"color"forKey:@"skin"];//保存颜色

    //[[NSUserDefaults standardUserDefaults] synchronize];//立即保存

}



#pragma mark  通过字典的键值获得主操作控制器的选中颜色


+ (UIColor *)getColorWithKey:(NSString *)key{

    

    NSString *name = [NSStringstringWithFormat:@"skin/%@/color.plist",_skin];

    

    NSString *path = [[NSBundlemainBundle]pathForResource:nameofType:nil];

    

    NSDictionary *dict = [NSDictionarydictionaryWithContentsOfFile:path];

    

   NSLog(@"%@",dict);

    

   NSString *strColor = dict[key];

    

    NSArray *allColor = [strColorcomponentsSeparatedByString:@","];

    

   CGFloat r = [allColor[0]integerValue]/255.0;

   CGFloat g = [allColor[1]integerValue]/255.0;

   CGFloat b = [allColor[2]integerValue]/255.0;

    

    return [UIColorcolorWithRed:rgreen:gblue:balpha:1.0];

    

}


@end



控制器代码:




//  NEOSkinTool.m

//  工具类更换如模式,主题

//

//  Created by apple on 15/11/16.

//  Copyright © 2015 dfdsaf. All rights reserved.

//


#import "NEOSkinTool.h"

static NSString *_skin;//类方法中不会出现全局对象就用一个全局变量代替


@implementation NEOSkinTool



+(void)load{

    

    NSLog(@"此方法已经执行");

    //_skin=[[NSUserDefaults standardUserDefaults] objectForKey:@"skin"];//此处出现了 bug

   if (_skin==nil) {

       _skin=@"blue";

    }

    

}



#pragma  mark 将控制器传回来的图片名称拼接图片的路径,返回图片

+(UIImage *)getImageWithName:(NSString *)imageName{

    

   

    NSString *path=[NSStringstringWithFormat:@"skin/%@/%@.png",_skin,imageName];

 

    return [UIImageimageNamed:path];

    

    

}


#pragma  mark 保存选择过的颜色

+(void)saveSkinWithColor:(NSString *)color{

    

   _skin=color;

    

    [[NSUserDefaultsstandardUserDefaults]setObject:@"color"forKey:@"skin"];//保存颜色

    //[[NSUserDefaults standardUserDefaults] synchronize];//立即保存

}



#pragma mark  通过字典的键值获得主操作控制器的选中颜色


+ (UIColor *)getColorWithKey:(NSString *)key{

    

    NSString *name = [NSStringstringWithFormat:@"skin/%@/color.plist",_skin];

    

    NSString *path = [[NSBundlemainBundle]pathForResource:nameofType:nil];

    

    NSDictionary *dict = [NSDictionarydictionaryWithContentsOfFile:path];

    

   NSLog(@"%@",dict);

    

   NSString *strColor = dict[key];

    

    NSArray *allColor = [strColorcomponentsSeparatedByString:@","];

    

   CGFloat r = [allColor[0]integerValue]/255.0;

   CGFloat g = [allColor[1]integerValue]/255.0;

   CGFloat b = [allColor[2]integerValue]/255.0;

    

    return [UIColorcolorWithRed:rgreen:gblue:balpha:1.0];

    

}


@end



实现效果图展示:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值