美工传来的颜色.....大多有16进制的,我们不要试图去要求让她们给你除255之后再给我们~给 UIView 封装一个分类,自己内部实现该方法:
UIColor+Extension.h 文件
#import <UIKit/UIKit.h>
@interface UIColor (Extension)
/**
* 根据无符号的32位整数转换为 RGB 颜色, 0x-->FF-->00-->00 ;4-->8-->16-->32
*
*/
+(instancetype)MD_ColorWithHex:(u_int32_t)hex ;
@end
UIColor+Extension.m 文件
#import "UIColor+Extension.h"
@implementation UIColor (Extension)
+(instancetype)MD_ColorWithHex:(u_int32_t)hex {
//假设该16进制颜色为:0xFFAA99
//红色: FF ;
//绿色: AA ;
//蓝色: 99 ;
//我要分别拿到这三个颜色的色素:
//采用按位与操作并且用 C 语言的位移 ( >> ) 操作符:
//0xFF0000
int red = (hex & 0xFF0000) >> 16;
//0x00FF00
int green = (hex & 0x00FF00) >> 8 ;
//FF 的二进制为: 1111 ,所以谁与它按位与还是谁本身!
int blue = hex & 0x0000FF ;
return [UIColor colorWithRed:red / 255.0 green:green / 255.0 blue:blue / 255.0 alpha:1.0] ;
}
@end
ViewController.m 文件
#import "ViewController.h"
#import "UIColor+Extension.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(99, 99, 99, 99)] ;
myView.backgroundColor = [UIColor MD_ColorWithHex:0x0000ff] ;
[self.view addSubview:myView] ;
}