• 推荐一个iOS关于颜色的库-Wonderful


    Wonderful 这个库主要是与UIColor息息相连的,其中一共包含四个子文件,UIColor+WonderfulUIColor+SeparateSXColorGradientViewSXMarquee分别对应颜色扩展,色彩分离,颜色渐变,和跑马灯 4种主要功能。

    项目地址:https://github.com/dsxNiubility/Wonderful

    一、UIColor+Wonderful

    1.这个分类提供了100多种的颜色扩展,譬如卡其色,银色,草坪绿,金色,巧克力色,等等。 虽然这个功能可能不太适合UI规范都直接制定好了的企业级的App,但是对于一些小型的App和Demo类程序还是有一些用武之地的。再也不用redColor buleColor了,再也不用想要一点特殊颜色就要colorWithRGB了。 只要引入了这个库,大部分的常用颜色都可以直接使用。

        self.view.backgroundColor = [UIColor khakiColor];
        self.view.backgroundColor = [UIColor chocolateColor]; 

    2.平均每个色系有10种颜色,不仅可以使用名称直接敲出,还能使用颜色阶梯的宏敲出,在你想不起词的时候更加方便。 宏从1~10是颜色渐深,可以根据自己的感觉使用浅一级的宏或深一级的宏。

        self.view.backgroundColor = Wonderful_YelloeColor4;
        self.view.backgroundColor = Wonderful_BrownColor4;

    3.提供了颜色微调方案,可以让一个已知颜色的rgb的某值上升或下降若干,可用于不管背景是什么色,边框都比背景深20之类的操作。 也可以将认可颜色的详细值打印出来。

        UIColor *navColor = [[UIColor redColor]up:SXColorTypeBlue num:30]; // 在红色上把蓝色色值提高30
        UIColor *barColor = [[UIColor blueColor]up:1 num:140]; // 可以直接用枚举对应的tag
        UIColor *bgColor = [[UIColor blackColor]down:SXColorTypeAlpha num:10]; // 取一个比黑色稍微淡的颜色
        UIColor *lineColor = [bgColor up:3 num:20]; // 不管背景是什么颜色 线都比背景浅20.

    这个可以先看一下效果展示:(gif图可能比较模糊,但实际上过渡是做的十分高清的)

      

    二、UIColor+Separate

    1.提供颜色分离方案,可以将任何颜色的RGB 和alpha的值取出。

        UIColor *testC = [UIColor salmonColor];
        float r= [testC red];
        float g= [testC green];
        float b= [testC blue];
        float alpha= [testC alpha];
        NSLog(@"******  %f,%f,%f,%f",r,g,b,alpha);

    2.可以通过一个颜色算出此颜色的反色,使得背景无论被用户设置成什么色,文字颜色都是背景的反色。

        self.showLbl1.backgroundColor = [UIColor peachRed];
        self.showLbl1.textColor = [[UIColor peachRed]reverseColor];
    

    3.也可以直接打印这个颜色的各项详细数值

    [[UIColor salmonColor]printDetail];
    
    // 打印结果
    This Color's Red:250, Green:128, Blue:114, Alpha:1
    decimal red:0.9804 green:0.5020 blue:0.4471 
    Hexadecimal 0xfa8072

    三、SXColorGradientView

    1.颜色渐变的view,可以设置任何颜色到透明的过渡。 如果有意,完全可以将导航栏设置成从上往下的渐变色。当下这种渐变色基本都是以一张背景图片,并且还不宜改变,使用原生方法实现渐变色的成本肯定比图片要小。

        SXColorGradientView *grv1 = [SXColorGradientView createWithColor:[UIColor paleGreen] frame:CGRectMake(10, 10, 80, 30) visible:YES direction:SXColorGradientToRight];

    2.也可以设置两个颜色相互过渡。

        SXColorGradientView *grv3 = [SXColorGradientView createWithFromColor:[UIColor peruColor] toColor:[UIColor ghostWhite] frame:CGRectMake(10, 50, 80, 30) direction:SXColorGradientToRight];

    3.可以设置向上下左右四个过渡的方向。

    typedef NS_ENUM(NSInteger, SXColorGradientDirection) {
        SXColorGradientToTop = 1,
        SXColorGradientToLeft = 2,
        SXColorGradientToBottom = 3,
        SXColorGradientToRight = 4,
    };

    *4.后续会增加传入一个数组,然后搭建一个多个颜色过渡的view。

     

    四、SXMarquee

    1.现在iOS的项目中,带有跑马灯的项目少之又少,安卓有自带的跑马灯控件,但iOS出于各种原因,至少我还没见过带跑马灯的项目,其实这个功能应该是很常用很方便很有意义的。 当下做跑马灯的第三方库没有几个,并且大多存在下列问题:代码老旧,实现复杂,只能实现白色的背景,不能绑定点击事件,点击暂停拖动等。

        SXMarquee *mar3 = [[SXMarquee alloc]initWithFrame:CGRectMake(20, 390, 335, 25) speed:2 Msg:@"If you've submitted an update to fix a critical bug in your app on the App Store and you are requesting an expedited review." bgColor:[UIColor goldColor] txtColor:[UIColor goldenrod]];
        [mar3 changeMarqueeLabelFont:[UIFont boldSystemFontOfSize:12]];
        [mar3 start];

    2.跑马灯的背景可以设置任何颜色,这个是基于颜色过渡view做的。

    3.跑马灯可以实现点击拖动,或者绑定更多点击事件。

    如果你不是在董铂然博客园看到本文 可点击查看原文

  • 相关阅读:
    svn ------ 更改提交地址,显示relocate
    .NET ------ 前端连接到新的界面与后台链接到新的界面
    .NET ------ 修改时间改变排序
    .NET ------ 通过flag 实现一表多用
    Java面向对象——抽象类与抽象方法
    Java——final关键字
    Java——类的成员之4:代码块(初始化块)
    Java——main方法的使用
    单例(Singleton)设计模式
    Java面向对象——static关键字
  • 原文地址:https://www.cnblogs.com/dsxniubility/p/4986859.html
Copyright © 2020-2023  润新知