c_cpp 来自十六进制的UIColor没有字符串解析,例如RGB(0x4C2BFF)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 来自十六进制的UIColor没有字符串解析,例如RGB(0x4C2BFF)相关的知识,希望对你有一定的参考价值。

//
//  Copyright © 2014 Yuri Kotov
//

import UIKit

public func RGB(color: UInt32) -> UIColor {
    let red = CGFloat(color >> 16 & 0xFF) / 255
    let green = CGFloat(color >> 8 & 0xFF) / 255
    let blue = CGFloat(color & 0xFF) / 255
    return UIColor(red: red, green: green, blue: blue, alpha: 1)
}

extension UIColor {
    class func colorFromHexString(string: String) -> UIColor? {
        var color: UInt32 = 0
        let scanner = NSScanner(string: string)
        return scanner.scanHexInt(&color) ? RGB(color) : nil
    }
}
//
//  Copyright © 2013 Yuri Kotov
//

NS_INLINE CGFloat ComponentValue(int color, int byte)
{
    return (color >> 8 * byte & 0xFF) / 255.f;
}

UIColor * RGB(int color)
{
    return [UIColor colorWithRed:ComponentValue(color, 2)
                           green:ComponentValue(color, 1)
                            blue:ComponentValue(color, 0)
                           alpha:1.f];
}
//
//  Copyright © 2013 Yuri Kotov
//

#import <UIKit/UIKit.h>

__attribute__((always_inline))
extern inline UIColor * RGB(int color);

以上是关于c_cpp 来自十六进制的UIColor没有字符串解析,例如RGB(0x4C2BFF)的主要内容,如果未能解决你的问题,请参考以下文章

将十六进制的颜色字符串转为UIColor

UIColor与十六进制字符串互转

如何将 UIColor 转换为十六进制字符串?

如何将UIColor转换为十六进制字符串?

16进制颜色字符串转为UIColor

swift 将十六进制字符串转换为UIColor