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






  • 相关阅读:
    Tree的两种存储形式
    滚轮缩放效果
    从hello world 说程序运行机制
    词法分析器的实现
    MSDN中回调函数的讲解及其C#例子:用委托实现回调函数
    在后台new出页面(组件)
    HTML中多种空格转义字符
    ios 博客集合
    IOS学习
    Apple Swift编程语言入门教程
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5231117.html
Copyright © 2011-2022 走看看