zoukankan      html  css  js  c++  java
  • Objective C

    UIColor+Hex.h

    #import <UIKit/UIKit.h>
     
    @interface UIColor (Hex)
     
    + (UIColor *) colorWithHexString: (NSString *) hexString;
    + (CGFloat) colorComponentFrom: (NSString *) string start: (NSUInteger) start length: (NSUInteger) length;
     
    @end


    UIColor+Hex.m

    #import "UIColor+Hex.h"
     
    @interface UIColor()
     
    + (CGFloat) colorComponentFrom: (NSString *) string start: (NSUInteger) start length: (NSUInteger) length;
     
    @end
     
     
    @implementation UIColor(HexString)
     
    + (UIColor *) colorWithHexString: (NSString *) hexString
    {
        NSString *colorString = [[hexString stringByReplacingOccurrencesOfString: @"#" withString: @""] uppercaseString];
        CGFloat alpha, red, blue, green;
        switch ([colorString length]) {
            case 3: // #RGB
                alpha = 1.0f;
                red   = [self colorComponentFrom: colorString start: 0 length: 1];
                green = [self colorComponentFrom: colorString start: 1 length: 1];
                blue  = [self colorComponentFrom: colorString start: 2 length: 1];
                break;
            case 4: // #ARGB
                alpha = [self colorComponentFrom: colorString start: 0 length: 1];
                red   = [self colorComponentFrom: colorString start: 1 length: 1];
                green = [self colorComponentFrom: colorString start: 2 length: 1];
                blue  = [self colorComponentFrom: colorString start: 3 length: 1];
                break;
            case 6: // #RRGGBB
                alpha = 1.0f;
                red   = [self colorComponentFrom: colorString start: 0 length: 2];
                green = [self colorComponentFrom: colorString start: 2 length: 2];
                blue  = [self colorComponentFrom: colorString start: 4 length: 2];
                break;
            case 8: // #AARRGGBB
                alpha = [self colorComponentFrom: colorString start: 0 length: 2];
                red   = [self colorComponentFrom: colorString start: 2 length: 2];
                green = [self colorComponentFrom: colorString start: 4 length: 2];
                blue  = [self colorComponentFrom: colorString start: 6 length: 2];
                break;
            default:
                [NSException raise:@"Invalid color value" format: @"Color value %@ is invalid.  It should be a hex value of the form #RBG, #ARGB, #RRGGBB, or #AARRGGBB", hexString];
                break;
        }
        return [UIColor colorWithRed: red green: green blue: blue alpha: alpha];
    }
     
    + (CGFloat) colorComponentFrom: (NSString *) string start: (NSUInteger) start length: (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;
    }
     
    @end






  • 相关阅读:
    解决Fatal error: Allowed memory size of 33554432 bytes exhausted
    VS2008 LINK : fatal error LNK1000: Internal error during IncrBuildImage
    天天算法01——左旋转字符串
    二叉排序数的判定
    数据结构绪论思维导图
    痛苦!很痛苦!
    【转】qt交叉环境编译
    [转]linux联想Y450屏幕亮度调节
    【转载】arm指令
    HTTP请求和响应——GET与POST区别以及SOAP(网络整理)
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5231117.html
Copyright © 2011-2022 走看看