zoukankan      html  css  js  c++  java
  • ios换肤思想,及工具类

    // 实现原理及思路:不同种类的皮肤放在不同的文件夹下,用一个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

  • 相关阅读:
    设计模式--4建造者模式
    java中的方法重载与重写以及方法修饰符
    设计模式--3.模板方法模式
    设计模式--2.工厂方法模式
    设计模式--1.单例模式
    问题--时景某些用户不能发表评论解决方案
    EXCEL:从一组数据中查找我想要的某个数据是否存在
    Git版本控制--05--可以吃后悔药之版本回退
    Git版本控制--04--文件修改后怎么提交
    Git版本控制--03--怎么向Git仓库中添加文件
  • 原文地址:https://www.cnblogs.com/tangranyang/p/4655864.html
Copyright © 2011-2022 走看看