ios换肤思想,及工具类
2015-07-17 22:47
501 查看
// 实现原理及思路:不同种类的皮肤放在不同的文件夹下,用一个plist文件存放不同控制器下的控件的背景颜色
//plist文件名称为控制器的名称,内部的数据字典的key value对自定义一个命名规则,容易读取即可
//
#import "MYScreenToll.h"
@interface MYScreenToll ()
@end
//皮肤设置
static NSString*_skin;
@implementation MYScreenToll
//类初始化加载的时候调用
+(void)initialize
{
_skin=[[NSUserDefaults standardUserDefaults]objectForKey:@"skin1"];
if (_skin==nil) {
_skin=@"blue";
}
}
//类方法
+(void)saveSkin:(NSString*)skin
{
_skin=skin;
//保存
NSUserDefaults *user=[NSUserDefaults standardUserDefaults];
[user setObject:skin forKey:@"skin1"];
[user synchronize];
}
+(UIImage*)loadImage:(NSString*)imageName
{
NSString*pathName=[NSString stringWithFormat:@"skin/%@/%@",_skin,imageName];
UIImage *image=[UIImage imageNamed:pathName];
return image;
}
+(UIColor*)loadColor:(NSString*)key
{
//拼接路径
NSString *plistName=[NSString stringWithFormat:@"skin/%@/color.plist",_skin];
//读取plist文件
NSString*str=[[NSBundle mainBundle]pathForResource:plistName ofType:nil];
NSData *data=[NSData dataWithContentsOfFile:str];
NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
NSString*colorStr=[dict objectForKey:key];
NSArray *rgb=[colorStr componentsSeparatedByString:@","];
UIColor *col=[[UIColor alloc]initWithRed:[rgb[0] intValue]/255.0 green:[rgb[1] intValue]/255.0 blue:[rgb[2] intValue]/255.0 alpha:1];
return col;
}
@end
//plist文件名称为控制器的名称,内部的数据字典的key value对自定义一个命名规则,容易读取即可
//
#import "MYScreenToll.h"
@interface MYScreenToll ()
@end
//皮肤设置
static NSString*_skin;
@implementation MYScreenToll
//类初始化加载的时候调用
+(void)initialize
{
_skin=[[NSUserDefaults standardUserDefaults]objectForKey:@"skin1"];
if (_skin==nil) {
_skin=@"blue";
}
}
//类方法
+(void)saveSkin:(NSString*)skin
{
_skin=skin;
//保存
NSUserDefaults *user=[NSUserDefaults standardUserDefaults];
[user setObject:skin forKey:@"skin1"];
[user synchronize];
}
+(UIImage*)loadImage:(NSString*)imageName
{
NSString*pathName=[NSString stringWithFormat:@"skin/%@/%@",_skin,imageName];
UIImage *image=[UIImage imageNamed:pathName];
return image;
}
+(UIColor*)loadColor:(NSString*)key
{
//拼接路径
NSString *plistName=[NSString stringWithFormat:@"skin/%@/color.plist",_skin];
//读取plist文件
NSString*str=[[NSBundle mainBundle]pathForResource:plistName ofType:nil];
NSData *data=[NSData dataWithContentsOfFile:str];
NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
NSString*colorStr=[dict objectForKey:key];
NSArray *rgb=[colorStr componentsSeparatedByString:@","];
UIColor *col=[[UIColor alloc]initWithRed:[rgb[0] intValue]/255.0 green:[rgb[1] intValue]/255.0 blue:[rgb[2] intValue]/255.0 alpha:1];
return col;
}
@end
相关文章推荐
- ios本地推送
- iOS开发 ----- vim配色
- iOS越狱开机运行程序
- 如何利用开发者账号重签ipa文件,并部署到IOS设备做测试
- ios调用系统导航
- ios 区域检测 使用coreLocation
- iOS第二天注意和学习重点
- iOS动画中的物理知识应用之愤怒的小鸟-重力加速度
- iOS开发中获取上月的起止时间(NSCalendar、NSDateComponents和NSDate的使用)
- 小白学开发(iOS)基础C_指针(2015-07-17)
- iOS应用程序开发过程的简述
- iOS9编程GOGOGO:XCode7新变化
- iOS端使用二维码扫描(ZBarSDK)和生成(libqrencode)功能
- iOS--阅读--优秀博客
- iOS--效率
- iOS开源框架及项目大全(一定有你想要的,后期在不断进行分类方便大家查阅)
- iOS--动画--转场动画
- ios 开发关键字IBInspectable
- ios学习笔记--(c基础题3)
- iOS笔记058 - IOS之多线程