zoukankan      html  css  js  c++  java
  • iOS学习-UIColor

    //
    //  ViewController.m
    //  UIColor详解
    //
    //  Created by 大欢 on 16/1/18.
    //  Copyright © 2016年 bjsxt. All rights reserved.
    //

    #import "ViewController.h"
    #import "UIColor+HEX.h"

    #define RGBA(r,g,b,a) [UIColor colorWithRed:(r)/255.f green:(g)/255.f blue:(b)/255.f alpha:(a)];

    @interface ViewController ()

    @end

    @implementation ViewController

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.view.backgroundColor = [UIColor orangeColor];
        
        UIView * v = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
        
        v.backgroundColor = [UIColor greenColor];
        
    //    图片转换color
        //[UIColor colorWithPatternImage:[UIImage imageNamed:@"haha"]];
        
    //    saturation饱和度 brightness亮度
        //[UIColor colorWithHue:0.4 saturation:1 brightness:1 alpha:1];
        //[UIColor colorWithHex:0x228942];
        
        //[UIColor colorWithHexString:@"#228942"];
        
        //RGBA(124, 172, 226, 1);
        
    //#228942
        
        //区间0 ~ 1
        //[UIColor colorWithRed:124/255.f green:172/255.f blue:226/255.f alpha:1];
        //灰度颜色0 ~ 1
        //[UIColor colorWithWhite:1 alpha:1];
        //[UIColor grayColor];     
        [self.view addSubview:v];
    }
    @end

    //
    //  UIColor+HEX.h
    //  IOS-Categories
    //
    //  Created by Jakey on 14/12/15.
    //  Copyright (c) 2014年 www.skyfox.org. All rights reserved.
    //

    #import <UIKit/UIKit.h>

    @interface UIColor (HEX)
    + (UIColor *)colorWithHex:(UInt32)hex;
    + (UIColor *)colorWithHex:(UInt32)hex andAlpha:(CGFloat)alpha;
    + (UIColor *)colorWithHexString:(NSString *)hexString;
    - (NSString *)HEXString;
    @end

    //
    //  UIColor+HEX.m
    //  IOS-Categories
    //
    //  Created by Jakey on 14/12/15.
    //  Copyright (c) 2014年 www.skyfox.org. All rights reserved.
    //

    #import "UIColor+HEX.h"

    CGFloat colorComponentFrom(NSString *string, NSUInteger start, NSUInteger length) {
        NSString *substring = [string substringWithRange:NSMakeRange(start, length)];
        NSString *fullHex = length == 2 ? substring : [NSString stringWithFormat: @"%@%@", substring, substring];
        
        unsigned hexComponent;
        [[NSScanner scannerWithString: fullHex] scanHexInt: &hexComponent];
        return hexComponent / 255.0;
    }

    @implementation UIColor (HEX)
    + (UIColor *)colorWithHex:(UInt32)hex{
        return [UIColor colorWithHex:hex andAlpha:1];
    }
    + (UIColor *)colorWithHex:(UInt32)hex andAlpha:(CGFloat)alpha{
        return [UIColor colorWithRed:((hex >> 16) & 0xFF)/255.0
                               green:((hex >> 8) & 0xFF)/255.0
                                blue:(hex & 0xFF)/255.0
                               alpha:alpha];
    }

    + (UIColor *)colorWithHexString:(NSString *)hexString {
        CGFloat alpha, red, blue, green;
        
        NSString *colorString = [[hexString stringByReplacingOccurrencesOfString:@"#" withString:@""] uppercaseString];
        switch ([colorString length]) {
            case 3: // #RGB
                alpha = 1.0f;
                red   = colorComponentFrom(colorString, 0, 1);
                green = colorComponentFrom(colorString, 1, 1);
                blue  = colorComponentFrom(colorString, 2, 1);
                break;
                
            case 4: // #ARGB
                alpha = colorComponentFrom(colorString, 0, 1);
                red   = colorComponentFrom(colorString, 1, 1);
                green = colorComponentFrom(colorString, 2, 1);
                blue  = colorComponentFrom(colorString, 3, 1);
                break;
                
            case 6: // #RRGGBB
                alpha = 1.0f;
                red   = colorComponentFrom(colorString, 0, 2);
                green = colorComponentFrom(colorString, 2, 2);
                blue  = colorComponentFrom(colorString, 4, 2);
                break;
                
            case 8: // #AARRGGBB
                alpha = colorComponentFrom(colorString, 0, 2);
                red   = colorComponentFrom(colorString, 2, 2);
                green = colorComponentFrom(colorString, 4, 2);
                blue  = colorComponentFrom(colorString, 6, 2);
                break;
                
            default:
                return nil;
        }
        return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
    }

    - (NSString *)HEXString{
        UIColor* color = self;
        if (CGColorGetNumberOfComponents(color.CGColor) < 4) {
            const CGFloat *components = CGColorGetComponents(color.CGColor);
            color = [UIColor colorWithRed:components[0]
                                    green:components[0]
                                     blue:components[0]
                                    alpha:components[1]];
        }
        if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) != kCGColorSpaceModelRGB) {
            return [NSString stringWithFormat:@"#FFFFFF"];
        }
        return [NSString stringWithFormat:@"#%02X%02X%02X", (int)((CGColorGetComponents(color.CGColor))[0]*255.0),
                (int)((CGColorGetComponents(color.CGColor))[1]*255.0),
                (int)((CGColorGetComponents(color.CGColor))[2]*255.0)];
    }
    @end

  • 相关阅读:
    常用正则表达式
    C# 计算时间差 用timespan函数
    SQL Server日期时间格式转换字符串详解
    .net数据根据字段进行分类(linq语句)
    IIS设置允许下载.exe文件解决方法
    IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置
    高版本jQuery设置checkbox状态注意事项
    sql大小转换函数
    常用的正则验证
    position布局影响点击事件以及冒泡获取事件目标
  • 原文地址:https://www.cnblogs.com/MrWuYindi/p/5143781.html
Copyright © 2011-2022 走看看