两个参数 一个是不透明度 一个是灰度值 返回的是一个颜色对象
两个值都是CGFloat类型 大于1按1算 小于0 按0算
和[[UIColor alloc]initWithWhite:0.33 alpha:1]方法一个道理
self.view.backgroundColor = [UIColor colorWithWhite:0.33 alpha:1];
用HSB和不透明度来返回一个颜色对象
色相(H,hue):在0~360°的标准色轮上,色相是按位置度量的。在通常的使用中,色相是由颜色名称标识的,比如红、绿或橙色。黑色和白色无色相
饱和度(S,saturation):表示色彩的纯度,为0时为灰色。白、黑和其他灰色色彩都没有饱和度的。在最大饱和度时,每一色相具有最纯的色光。取值范围0~100%
亮度(B,brightness或V,value):是色彩的明亮度。为0时即为黑色。最大亮度是色彩最鲜明的状态。取值范围0~100%
HSB模式中S和B呈现的数值越高,饱和度明度越高,页面色彩强烈艳丽,对视觉刺激是迅速的,醒目的效果,但不易于长时间的观看。以上两种颜色的S数值接近,是强烈的状态。H显示的度是代表在色轮表里某个角度所呈现的色相状态,相对于饱和度(S)和亮度(B)来说,意义不大。
参数都是CGFloat类型 大于1按1算 小于0 按0算
和这个方法一个道理[[UIColor alloc]initWithHue:0.5 saturation:0.5 brightness:0.5 alpha:1]
self.view.backgroundColor = [UIColor colorWithHue:0.5 saturation:0.5 brightness:0.5 alpha:1];
用RGB和不透明度来返回一个颜色对象
同上一样参数都是CGFloat类型 值在0~1之间 大于1的话就是1 小于0的话就是0
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一
RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2...直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级
因为我们这的数值是0~1之间的 所以这个数值要除以255 才能正常显示
和[[UIColor alloc]initWithRed:150/255. green:150/255. blue:150/255. alpha:1]这个方法一样
self.view.backgroundColor = [UIColor colorWithRed:150/255. green:150/255. blue:150/255. alpha:1];
参数是一个CGColorRef结构体 UIColor这个类的其中一个属性就是CGColorRef
和[[UIColor alloc]initWithCGColor:cgColor]一样
平时开发中 本人比较少见 所以理解的并不深刻 在这不做深究
CGColorRef cgColor = [UIColor redColor].CGColor;
self.view.backgroundColor = [UIColor colorWithCGColor:cgColor];
这个方法很消耗内存 就单单这个方法 在我模拟器上内存消耗19.1 不如设置他的背景颜色
view1.layer.contents = (id) [UIImage imageNamed:@"01"].CGImage;网上说这种方式比较省内存 我试了一下 内存消耗19 但是这个方法默认的不是左上角 是全部填充的
而且目前这个方法设置的图片总是frame不对,这个还不能通过属性来解决 建议不要用这个方法
若必须要用的话 我的建议是用view1.layer.contents = (id) [UIImage imageNamed:@"01"].CGImage;来代替
和[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"01"]]这个方法一个效果
view1.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"01"]];
如图
Core Image转化为UIColor 颜色一样 本人对CIColor理解的不深 这个方法不做深究 以后在详细研究
和[[UIColor alloc]initWithCIColor:ciColor]方法效果一样
CIColor * ciColor = [CIColor colorWithRed:155/255. green:155/255. blue:155/255.];
self.view.backgroundColor = [UIColor colorWithCIColor:ciColor];
也可以这样写
self.view.backgroundColor = [UIColor darkGrayColor];
他们其实是调用的是colorWithWhite:0.33 alpha:1 和 colorWithRed:150/255. green:150/255. blue:150/255. alpha:1这两个方法 alpha都为1 不透明
只有clearColor的 不透明度为0 意思是透明了
+ (UIColor *)blackColor; // 0.0 white
+ (UIColor *)darkGrayColor; // 0.333 white
+ (UIColor *)lightGrayColor; // 0.667 white
+ (UIColor *)whiteColor; // 1.0 white
+ (UIColor *)grayColor; // 0.5 white
+ (UIColor *)redColor; // 1.0, 0.0, 0.0 RGB
+ (UIColor *)greenColor; // 0.0, 1.0, 0.0 RGB
+ (UIColor *)blueColor; // 0.0, 0.0, 1.0 RGB
+ (UIColor *)cyanColor; // 0.0, 1.0, 1.0 RGB
+ (UIColor *)yellowColor; // 1.0, 1.0, 0.0 RGB
+ (UIColor *)magentaColor; // 1.0, 0.0, 1.0 RGB
+ (UIColor *)orangeColor; // 1.0, 0.5, 0.0 RGB
+ (UIColor *)purpleColor; // 0.5, 0.0, 0.5 RGB
+ (UIColor *)brownColor; // 0.6, 0.4, 0.2 RGB
+ (UIColor *)clearColor; // 0.0 white, 0.0 alpha
另外 跳到头文件你可以看到
还有三个方法,这三个方法目前以我的经历来看就只用在了绘图,其他地方这个方法见的不多
setStroke是填充空心的 setFill填充实心的 set是两种都可以用
CGContextRef ref = UIGraphicsGetCurrentContext();
CGContextMoveToPoint(ref, 50, 50);
CGContextAddLineToPoint(ref, 100, 100);
CGContextSetLineWidth(ref, 20);
CGContextSetLineCap(ref, kCGLineCapRound);
[[UIColor blueColor] set]; //这个方法和[[UIColor blueColor] setStroke];实现的效果是一样的
CGContextStrokePath(ref);
CGContextAddRect(ref, CGRectMake(250, 10, 100, 200));
[[UIColor yellowColor] set];//这个方法和[[UIColor yellowColor] setFill];实现的效果是一样的
CGContextFillPath(ref);
如图所示
画得蓝色和黄色的部分
其余的方法都被抛弃了,暂时不做研究,本人菜鸟,若代码写的有问题或者不合适的地方,请大神指出来,先谢谢啦